Skip to content

预处理器

文件包含

# 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