C++预处理命令

来源:互联网 发布:司法淘宝拍卖网 编辑:程序博客网 时间:2024/05/17 22:49

C++提供的预处理功能:宏定义、文件包含和条件编译;分别由宏定义命令、文件包含命令和条件编译命令三种预处理命令来实现。

预处理命令

格     式:     #预处理命令 …… (末尾不加分号)

作用域:    从定义点到程序结束

说    明:     预处理命令独占一行,位置任意

宏定义命令

格     式:#define 宏名[(形参)] 宏体

                 #undef 宏名[(形参)] 

作用域:从定义点到#undef为止,否则到整个文件结束。

说    明:宏名可为不带参数的标识符或带参数的标识符;

                宏体可以是任意的字符序列,也可是表达式或多个语句;

                关键字undef的作用是取消标识符的定义,被取消后的标识符可另作他用;

                形参不是变量,只是一个符号代表,没有类型标识;

                宏展开只是进行机械的替换。

实    例:

#define PI 3.1415

#define S(R) PI * R * R   //定义宏S(R),求半径为R的圆的面积

文件包含命令

格   式:#include <文件名>  或  #include "文件名"

说   明:尖括号表示按系统标准库路径去检索被包含的文件;

              双引号表示首先在引用被包含文件的源文件所在文件目录中寻找被包含文件,如果找不到被包含文件,则按系统标准库路径寻找被

              包含,或者按双引号内指定的路径检索被包含文件,若未指定路径就在当前目录寻找被包含文件;

              包含文件有两类:头文件(.h)和源文件(.cpp);

              对系统文件使用<>,对用户自定义文件使用""。

条件编译命令

格   式:#if …… #endif

            #if …… #else …… #endif

            #if …… #elif …… #elif …… #else …… #endif

            #ifdef …… #else …… #endif

            #ifndef …… #else …… #endif

说   明:使用条件编译,可以避免在一个程序中重复包含某个头文件。

原创粉丝点击