第2讲预处理命令2(11级).pdf
文本预览下载声明
预处理命令
主讲:王克朝
学习内容
∗预处理命令:
∗ 宏定义命令
∗ 文件包含命令
∗ 条件编译命令
编译预处理
∗ 编译预处理命令
∗ 在C++程序的源代码中可以使用各种编译指令,这些指
令称为编译预处理命令。
∗ C++提供的预处理命令主要有以下三种:
∗ 宏定义命令
∗ 文件包含命令
∗ 条件编译命令
∗ 特点:
∗ 这些命令在程序中都是以“#”来引导,
∗ 每条预处理命令必须单独占用一行;
∗ 它们不是C++的语句,因此在结尾没有分号“;”
宏定义命令
∗ 宏定义的一般形式为:
∗ #define 宏名 字符串
∗ 例子:
∗ #define PI 3.1415926
∗ 说明:
∗ define是宏替换的关键字,
∗ 宏名”是需要替换的标识符,
∗ “字符串”是被指定用来替换的字符序列。
∗ #define、宏名和字符串之间一定要有空格。
∗ 宏名一般用大写字母表示,以区别于普通标识符。
宏定义命令的几点说明
∗ 宏被定义以后,一般不能再重新定义。但可以用#undef
来终止宏定义。
∗ 一个定义过的宏名可以用来定义其他新的宏,但要注意
其中的括号。
∗ 如:#define A 20
∗ #define B (A+10)
∗ 还可以有带参数的宏替换。
∗ 如: #define MAX(a,b) ((a)(b)?(a):(b))
文件包含命令
说明
(1)文件名一般是以.h为扩展名,因而称
∗ 文件包含 它为“头文件”
所谓“文件包含”是指将另一个源 (2)文件包含的两种格式区别在于:
文件的内容合并到当前程序中。 将文件名用“ ”括起来,用来包含那些
文件包含命令的一般形式为: 由系统提供的并放在指定子目录中头文件;
#include文件名 将文件名用双引号括起来的,用来包含用
按标准方式搜索,文件位于C++ 系统 户自己定义的放在当前目录或其他目录下
目录的include子目录下 的头文件或其他源文件。
或 #include”文件名” (3)一条#include命令只能包含一个文件,
首先在当前目录中搜索,若没有, 若想包含多个文件,则应使用多条包含命
再按标准方式搜索 令
作用
文件包含可以将头文件中的内容直
接引入,而不必再重复定义,减少
了重复劳动,节省了编程时间。
条件编译命令
∗条件编译
∗ 在一般情况下,源程序中的所有语句都会参加编译,
∗ 但是有时候会希望根据一定的条件编译源文件的部分
语句,这就是“条件编译”。
∗ 条件编译使得同一源程序在不同的编译条件下得到不
同的目标代码。
条件编译命令
#ifdef 标识符
程序段1
#else
程序段2
#endif
该条件编译命令的功能是:
如果在程序中定义了指定的“标识符”时,就用程序段
1参与编译,否则,用程序段2参与编译。
条件编译命令
#ifndef 标识符
程序段1
#else
显示全部