第12讲预处理命令

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
预处理命令
制作者:车万翔
学习内容

预处理命令: 宏定义命令 文件包含命令 条件编译命令
编译预处理

p108


编译预处理命令 在C++程序的源代码中可以使用各种编译指令,这些指 令称为编译预处理命令。 C++提供的预处理命令主要有以下三种: 宏定义命令 文件包含命令 条件编译命令 特点: 这些命令在程序中都是以“#”来引导, 每条预处理命令必须单独占用一行; 它们不是C++的语句,因此在结尾没有分号“;”
宏定义命令

p108

宏定义的一般形式为: #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为扩展名, p109
说明:



因而称它为“头文件” 文件包含 (2)文件包含的两种格式区别在于: 所谓“文件包含”是指将 将文件名用“< >”括起来,用来 另一个源文件的内容合并 包含那些由系统提供的并放在指 到当前程序中。 定子目录中头文件; 文件包含命令的一般形式为: 将文件名用双引号括起来的,用 #include<文件名> 来包含用户自己定义的放在当前 或 #include”文件名” 目录或其他目录下的头文件或其 作用 他源文件。 文件包含可以将头文件中 (3)一条#include命令只能包含一 的内容直接引入,而不必 个文件,若想包含多个文件,则 再重复定义,减少了重复 应使用多条包含命令 劳动,节省了编程时间。
条件编译命令

p109
条件编译

在一般情况下,源程序中的所有语句都会参加编译, 但是有时候会希望根据一定的条件编译源文件的部分 语句,这就是“条件编译”。

条件编译使得同一源程序在不同的编译条件下得到不 同的目标代码。

常用的条件编译命令有如下三种:
条件编译命令

格式1 #ifdef 标识符 程序段1 #else
程序段2 #endif 该条件编译命令的功能是:


如果在程序中定义了指定的“标识符”时,就用程序 段1参与编译,否则,用程序段2参与编译。
条件编译命令


格式2 #ifndef 标识符 程序段1 #else 程序段2 #endif 该条件编译命令的功能是:

如果在程序中未定义指定的“标识符”时,就用程序 段1参与编译,否则,用程序段2参与编译。
条件编译命令





格式3 #if 常量表达式1 程序段1 #elif常量表达式2 程序段2 …… #elif常量表达式n 程序段n #else 程序段n+1 #endif 该条件编译命令的功能是:

依次计算常量表达式的值,当表达式的值为真时,则用相应的程序段参 与编译,如果全部表达式的值都为假,则用else后的程序段参与编译。
学到了什么

预处理命令: 宏定义命令 文件包含命令 条件编译命令
相关文档
最新文档