如何生成编译时错误?

The*_* do -2 c++

我希望能够做到这样的事情:

   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
}
    }
Run Code Online (Sandbox Code Playgroud)

Amn*_*non 19

要基于运行时检查生成编译时警告,只需创建一个名为"warning.c"的文件,其中包含未使用的变量声明.然后,您可以生成以下警告:

void f(int *p = nullptr) {
    if (!p) {
        system("gcc -Wall warning.c");
    }
}
Run Code Online (Sandbox Code Playgroud)


Edw*_*nge 10

正确答案是:你要做的事情永远不会奏效.


Fré*_*idi 5

大多数(如果不是全部)编译器都支持#error#warning预处理器指令.

不过,微软的编译器使用的是#pragma message()代替#warning.

  • @There` #pragma message("blah")`已经为我工作了10年以上.如果它不适合你,你做错了什么. (2认同)