预处理器是在编译之前执行的一段程序,主要包括一下三种形式:
(1)宏定义 #define
(2)文件包含 #include:当预处理器看到#include标记时,就会用指定的头文件的内容代替#include,在编译时,就对已经替换的文件进行编译
(3)条件编译 #define 指令把一个名字设定为预处理变量,#ifdef 当且仅当变量已定义时为真, #ifndef当且仅当变量未定义时为真。一旦检查为真,则执行后续操作直至遇到#endif指令为止—-从而有效地防止重复包含的产生,实现条件编译
#ifndef DEFINE_H
#define DEFINE_H
#include"Screen.h"
#endif
第一次包含define.h时,#ifndef的检查结果为真,预处理器将顺序执行,直至#endif。此时,预处理变量DEFINE_H的值将变为已定义,而且define.h也会被拷贝到我们的程序中来。后面如果再一次包含define.h,则#ifndef的检查结果将为假,编译器将忽略#ifndef到#endif之间的部分。