C/C++预编译指令
预编译指令告诉预处理器采取特定动作。常见的功能有
- 宏替换替换
- 简化不同执行环境中的更改和编译(条件编译)
条件编译实操
通过条件编译,可以实现简单改变源码,或是编译命令
从而达到只选择编译部分源码的效果,这在debug时很有用处
下面举个例子,根据宏_DEBUG是否定义来判断是否要编译该部分代码
#ifdef _DEBUG
void funcForDebug()
{
std::cout << "_DEBUG enable" << std::endl;
}
#endif
上面代码将在宏_DEBUG被定义时才被编译
想要在编译时定义
_DEBUG宏,可以使用gcc/g++的-D参数来定义宏
$ g++ -D_DEBUG -g -std=c++11 main.cpp -o test
$ gdb test
现在调试时,就可以调用该函数了
可以看到,在gdb中成功调用了该函数

其他情况
如果项目使用make文件,则可以添加关于_DEBUG宏定义的变量即可
如果不方便添加,也可以使用#if命令,手动进行开关
#if 1 // #if 0 即关闭
some code
#endif
参考文档
Microsoft Learn
CSDN

浙公网安备 33010602011771号