文档详情

第2讲预处理命令2(11级).pdf

发布:2015-09-16约3.92千字共16页下载文档
文本预览下载声明
预处理命令 主讲:王克朝 学习内容 ∗预处理命令: ∗ 宏定义命令 ∗ 文件包含命令 ∗ 条件编译命令 编译预处理 ∗ 编译预处理命令 ∗ 在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
显示全部
相似文档