#ifdef 宏替换名
语句段
#endif //如果 宏替换名 被定义则执行 语句段 否则不执行
#ifdef 宏替换名
语句段1
#else
语句段2
#endif //如果 宏替换名 被定义则执行 语句段1 否则执行 语句段2
#ifndef 宏替换名
#endif //如果 宏替换名 被没被定义则执行 语句段 否则不执行
#if 常数表达式 //不带()
语句段1
#else //else if 常数表达式
#endif //如果常数表达式为真则执行 语句段1 否则执行 语句段2
#include " " 从库函数头文件所在目录寻找包含文件
#include " " 从用户当前目录中寻找包含文件,如果没有再到库函数头文件目录中查找
//以上如果其中一个包含全局静态变量,那么它所处的.c或.cpp文件中也有效,不需要加exturn声明
#line //改变行号
#line 行号["文件名"] __LINE__ 当前行号__FILE__ 当前文件名 //注意是两个_而不是一个_
#pragma 参数
message参数:该参数能够在编译信息输出窗口中输出相应的信息
code_seg参数:设置程序中函数代码存放的代码段
once参数:保证头文件被编译一次
#define 宏名 字符串
#define 宏名(参数表)字符串 //它的扩展必须加括号,最好是每个替换的时候加括号
//如果字符串长于一行,可以在该行末尾用一反斜扛 "\" 续行,如果串中有宏名则不进行替换,不进行数据类型检测,在预编译阶段处理
语句段
#endif //如果 宏替换名 被定义则执行 语句段 否则不执行
#ifdef 宏替换名
语句段1
#else
语句段2
#endif //如果 宏替换名 被定义则执行 语句段1 否则执行 语句段2
#ifndef 宏替换名
语句段
#endif //如果 宏替换名 被没被定义则执行 语句段 否则不执行
#if 常数表达式 //不带()
语句段1
#else //else if 常数表达式
语句段2
#endif //如果常数表达式为真则执行 语句段1 否则执行 语句段2
#include " " 从库函数头文件所在目录寻找包含文件
#include " " 从用户当前目录中寻找包含文件,如果没有再到库函数头文件目录中查找
//以上如果其中一个包含全局静态变量,那么它所处的.c或.cpp文件中也有效,不需要加exturn声明
#line //改变行号
#line 行号["文件名"] __LINE__ 当前行号__FILE__ 当前文件名 //注意是两个_而不是一个_
#pragma 参数
message参数:该参数能够在编译信息输出窗口中输出相应的信息
code_seg参数:设置程序中函数代码存放的代码段
once参数:保证头文件被编译一次
#define 宏名 字符串
#define 宏名(参数表)字符串 //它的扩展必须加括号,最好是每个替换的时候加括号
//如果字符串长于一行,可以在该行末尾用一反斜扛 "\" 续行,如果串中有宏名则不进行替换,不进行数据类型检测,在预编译阶段处理
#undef 宏替换名 //终止#define作用域,即删除事先定义了的宏定义