首页 > 代码库 > 预处理指令

预处理指令

预处理指令在编译之前,由编译器执行,预处理结果作为编译器的输入。
主要功能:把其他文件包含到当前文件、定义符号常量和宏、程序代码的条件编译以及预处理指令的条件执行。
预处理指令包括:#include, #define, #error, #if, #else, #elif, #endif, #ifdef, #ifndef, #undef, #line, #pragma
1、#include指令
作用:指示编译器将该指令所指出的另一个源文件嵌入该指令所在的程序中。
文件名使用尖括号:在指定目录中寻找被包括的文件
文件名使用双引号:在被编译的程序所在目录中寻找被包括的文件

2、#define指令
定义符号常量或宏,一般形式为:
  1. #define 符号常量标识符 字符串
  2. #define 宏标识符 字符串
程序中的宏标识符在编译前只是被完全的文本替代。
  1. #define PI 3.1415926
  2. #define CIRCLE_AREA1(x) (PI * (x) * (x))
  3. #define CIRCLE_AREA2(x) (PI * x * x)
调用area = CIRCLE_AREA1(c+2), 预处理后为 area = (3.1415926 * (c+2) * (c+2))
调用area = CIRCLE_AREA2(c+2), 预处理后为 area = (3.1415926 * c+2* c+2)=(3.1415926 * c) + (2 * c) +2

3、#if, #else, #endif, #ifdef, #ifndef指令
  1. #if常量表达式
  2. 程序段1
  3. #else
  4. 程序段2
  5. #endif
若#if指令后的常数表达式为true,编译程序段1;否则,编译程序段2
#ifdef, #ifndef指令分别相当于#if define和#if!define


null


预处理指令