预处理指令是以#开头的代码行,#后是指令关键字,整条语句构成了一条预处理指令。
#空指令
#include 包含一个源代码文件
#define 定义宏
#undef 取消已经定义的宏
#if 条件为真,编译代码
#ifdef 宏已经定义,则编译代码
#ifndef 如果宏没有定义,则编译代码
#elif 如果前#if给定条件不为真,当前条件为真,编译下面代码
#endif 结束一个#if #else条件编译块
#error 停止编译并显示错误信息
#define value 100
int main()
{
int i = 100;
if (i == value)
{
cout << "log" << endl;
}
}
编辑器在预处理阶段做简单的替换,预处理会将代码中宏标识符替换成定义时的值,
上述,会将value 替换为 100
define 可以像函数接受一些参数
#define max(x,y) (x)>(y)?(x):(y);
int main()
{
int i = 100;
if (i == value)
{
int b = max(30, 20)
cout <<b<< endl;
}
}
3.#ifdef #ifndef #endif
#define DEBUG 1
int main()
{
//if def 如果该宏定义,下列代码即被编译
#ifdef DEBUG
cout << "ifdef_debug" << endl;
#endif
#ifndef DEBUG
cout << "ifndef_debug" << endl;
#endif
}
#if /#elif / #endif
int main()
{
int a = 2;
#if a>5
cout << "log1" << endl;
#else
cout << "log2" << endl;
#endif
#if a>5
cout << "log3" << endl;
#elif a<5
cout << "log4" << endl;
#endif
return 0;
}
原文:https://www.cnblogs.com/zsymdbk/p/14828496.html