在看代码的时候经常会碰到#ifndef ,#endif这样的指令,这个的作用是头文件保护符,用于防止同一头文件的多次包含:
预处理变量有两种状态:已定义和未定义
#define 命令使得某一预处理变量变为已定义
#ifdef 命令当且仅当变量已定义时成真
#ifndef命令当且仅当未定义时成真
若检查结果为真,则执行后续语句直至遇到#endif指令
如:
#ifndef EXAMP
#define EXAMP
....
#endif
第一次包含EXAMP.h文件时,#ifndef检查为真,预处理器将执行后续语句知道#endif。
再次包含时,EXAMP变为已定义,编译器将自动忽略这一段代码。