我希望能够做到这样的事情:
void f(int*p = nullptr)
{
if (!p)
{
//HERE I WOULD LIKE TO HAVE AN MSG THAT WOULD BE DISPLAYED DURING COMPILATION AS A WARNING POSSIBLY
}
}
答案 0 :(得分:19)
要基于运行时检查生成编译时警告,只需创建一个名为“warning.c”的文件,其中包含未使用的变量声明。然后,您可以生成类似的警告:
void f(int *p = nullptr) {
if (!p) {
system("gcc -Wall warning.c");
}
}
答案 1 :(得分:10)
正确答案是:你要做的事情永远不会奏效。
答案 2 :(得分:5)
答案 3 :(得分:3)
Google #if
#endif
和#error
预处理程序指令。根据编译时不可用的变量值生成编译错误是不可能的,所以不要忘记它。使用assert()
。