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中成功调用了该函数

image

其他情况

如果项目使用make文件,则可以添加关于_DEBUG宏定义的变量即可
如果不方便添加,也可以使用#if命令,手动进行开关

#if 1			//	#if 0 即关闭
	some code
#endif

参考文档
Microsoft Learn
CSDN

posted @ 2024-04-28 15:01  lifeAddicted  阅读(19)  评论(0)    收藏  举报