转载自:“https://www.cnblogs.com/xiehongfeng100/p/4594849.html”,原文写的更加详细,还有代码解释,建议看原文。
本文主要记录了C/C++预处理指令,常见的预处理指令如下:
#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息
(一)测试程序:
#include <iostream>
using namespace std;#define DEF 0int main()
{
#if DEFcout << "DEF not 0" << endl;
#elsecout << "DEF is 0" << endl;
#endif#ifdef DEFcout << "define DEF" << endl;
#elsecout << "not define DEF" << endl;
#endifreturn 0;
}
结果如下:
DEF is 0
define DEF
(二)测试程序:
#include <iostream>
using namespace std;
//注意下面的改动,和上面的代码不同
#define DEF 1 int main()
{
#if DEFcout << "DEF not 0" << endl;
#elsecout << "DEF is 0" << endl;
#endif#ifdef DEFcout << "define DEF" << endl;
#elsecout << "not define DEF" << endl;
#endifreturn 0;
}
运行结果如下:
DEF not 0
define DEF
(三)如果我们把这行代码注释掉,即变成如下的形式,其他代码和上面代码相同
//#define DEF 1
输出结果如下:
DEF is 0
not define DEF