我一直在研究 GCC 编译指示类型及其操作。但我意识到pragmas可以用来直接编译命令。我遇到的困惑是 # 操作是预处理的一部分,例如
#if DEBUG
/* statement one */
#elif RELEASE
/* statement two */
#endif
Run Code Online (Sandbox Code Playgroud)
如果激活调试模式,编译器甚至不会编译和检测语句二中的错误,但是#pragma如何直接向编译器发出命令?
另外,如果它控制编译器,有没有办法在没有#pragmas的情况下做到这一点?因为预处理之后只剩下C代码了。