第12章编译预处理 12.1了编译预理 12.2宏定火 12.3文件包含 12.4条件编译 点专此处结束放殃 4合
第12章 编译预处理 12.1 了解编译预处理 12.2 宏 定 义 12.3 文 件 包 含 12.4 条 件 编 译
12.1了解编译预处理 C语言所提供的“编译预处理”功能 是它区别于其他高级语言的又一重要特征, 其主要功能包括三种:宏定义、文件包含 和条件编译,分别由三种命令来实现。为 了区别于C语句,预处理命令必须出现在 行的开始并以“#”号打头。 点专此处结束放殃 4合
12.1 了解编译预处理 C语言所提供的“编译预处理”功能 是它区别于其他高级语言的又一重要特征, 其主要功能包括三种:宏定义、文件包含 和条件编译,分别由三种命令来实现。为 了区别于C语句,预处理命令必须出现在 一行的开始并以“#”号打头
122宏定义 宏定义由# define命令实现,根据实际 应用的需要可以分为不带参数的宏定义和 带有参数的宏定义两种命令形式。 12.2.1不带参数的宏定义 命令的一般形式为: # define标识符字符串 点专此处结束放殃 4合
12.2 宏 定 义 宏定义由#define命令实现,根据实际 应用的需要可以分为不带参数的宏定义和 带有参数的宏定义两种命令形式。 12.2.1 不带参数的宏定义 命令的一般形式为: #define 标识符 字符串
定义中的“标识符”称为“宏名”。 这一命令的作用仅仅是表明用指定的宏名 来代替一个指定的字符串。例如 #define pi 3.1415926 它的作用是指定用宏名PI来代替 “3.1415926”这个字符串。在预编译时 程序中所有出现“宏名”的地方,都将由 这个字符串的内容进行替换,此过程称为 “宏展开”。 点专此处结束放殃 4合
定义中的“标识符”称为“宏名” 。 这一命令的作用仅仅是表明用指定的宏名 来代替一个指定的字符串。例如: #define PI 3 .1415926 它 的 作 用 是 指 定 用 宏 名 PI 来代替 “3 .1415926”这个字符串。在预编译时, 程序中所有出现“宏名”的地方,都将由 这个字符串的内容进行替换,此过程称为 “宏展开”
说明 (1)不带参数的宏定义常常被用于定 义符号常量。这样既可以提高程序的通用 性,也便于修改。 例121用宏名限定数组的大小。 #define n 1o /定义宏名N* void arrIn(int ad i int i; 点专此处结束放殃 4合
说明 (1)不带参数的宏定义常常被用于定 义符号常量。这样既可以提高程序的通用 性,也便于修改。 例12.1 用宏名限定数组的大小。 #define N 10 /* 定义宏名N */ void ArrIn(int a[]) { int i;