c++预处理器概述 #define #ifdef #ifndef #endif

来源:互联网 发布:程序员的职业素养.pdf 编辑:程序博客网 时间:2024/06/05 00:09


预处理器:

确保头文件多次包含仍能安全工作,即可以有效地防止头文件重复包含的发生.


它由c++语言继承c语言而来,预处理器是在编译之前执行的一段程序。


我们比较熟悉的#include 就是一项预处理功能,当预处理器看到#include标记时就会用指定的头文件代替#include。


预处理器还会用到一项预处理功能就是头文件保护符,头文件保护符依赖于预处理变量,而预处理变量有两种状态:已定义和未定义。


我们经常用#define指令把一个名字设定为预处理变量,

#ifdef 和#ifdnf 指令用于 检查某个预处理变量是否已经定义。


#ifdef 为真说明变量已经被定义

#ifndef 为真说明变量还未被定义


一旦上述某个检查结果为真则执行后续操作直至遇到#endif指令为止,

检查结果为假则忽略在其中间的部分。


//现有头文件Student.h 和头文件Teacher.h#ifndef STUDENT_H       #define STUDENT_H#include "Student.h"  //#ifndef 为真时执行此操作#endif _STUDENT_H_#ifdef STUDENT_H  #include "Teacher.h"  //#ifdef 为真时执行此操作#endif//两个指令结果都为真 两个头文件全被导入


提示:

1.预处理变量无视作用域规则

2.为了避免与其他命名冲突,一般都把预处理变量的名字全部大写或配合'_'命名







0 0
原创粉丝点击