预处理器
文件包含
# include <xxx.h>
# include "xxx.h"
这二者有什么区别?
前者一般在 C++ 目录下寻找头文件,后者在 C 目录下寻找
条件编译
#ifdef, #else, #endif
若 标识符
已被定义,则运行 program1
否则运行 program2
C
#ifdef 标识符
program1
#else
program2
#endif
#ifndef, #else, #endif
若 标识符
未被定义,则运行 program1
否则运行 program2
C
#ifndef 标识符
program1
#else
program2
#endif
#if, #else, #endif
若 表达式
成立,则运行 program1
否则运行 program2
C
#ifndef 表达式
program1
#else
program2
#endif
undef
将已定义的 标识符
变为未定义
C
#undef 标识符
# pragma
命令
#pragma token-string
其中 token-string
有多种。用于指示编译器如何编译。
自行查询使用
# line
命令
# line number "file_name"
编译器显示错误信息时 改变行号 number
和文件名 file_name