Kin*_*arō 4 c++ c-preprocessor
假设我有以下代码:
int main() {
#ifdef NEWMETHOD
val = new_method("hello world!");
#else
val = old_method("hello world!");
#endif
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何在编译时定义 NEWMETHOD?
你可以
通过插入来定义它
#define NEWMETHOD
Run Code Online (Sandbox Code Playgroud)
使用前先进入源代码或
添加-DNEWMETHOD到您的编译器调用(适用于所有流行的编译器,包括 GCC、clang 和 MSVC)。
根据您的构建系统,您可能希望将其添加到CFLAGS(C) 或CXXFLAGS(C++) 环境变量中。
你只需要写
#define NEWMETHOD
Run Code Online (Sandbox Code Playgroud)
在您进行#ifdef检查之前。
当然,那么你就不需要#ifdef首先编写。
如果您想在不更改源代码的情况下定义宏,可以在编译期间使用标志将其传入-D,如下所示:
g++ -DNEWMETHOD main.cpp
Run Code Online (Sandbox Code Playgroud)
显然,替换具体的编译命令和文件名。