制作:方斌 3.说明 (1)宏名一般用大写字母表示,以示与变量区别。但这并非是规定。 (2)宏定义不是C语句,所以不能在行尾加分号。否则,宏展开时, 会将分号作为字符串的1个字符,用于替换宏名。 (3)在宏展开时,预处理程序仅以按宏定义简单替换宏名,而不作 任何检查。如果有错误,只能由编译程序在编译宏展开后的源程序时发 现。 (4)宏定义命令# define出现在函数的外部,宏名的有效范围是: 从定义命令之后,到本文件结束。通常,宏定义命令放在文件开头处。 (5)在进行宏定义时,可以引用已定义的宏名。 (6)对双引号括起来的字符串内的字符,即使与宏名同名,也不进 行宏展开
制 作:方 斌 3.说明 (1)宏名一般用大写字母表示,以示与变量区别。但这并非是规定。 (2)宏定义不是C语句,所以不能在行尾加分号。否则,宏展开时, 会将分号作为字符串的1个字符,用于替换宏名。 (3)在宏展开时,预处理程序仅以按宏定义简单替换宏名,而不作 任何检查。如果有错误,只能由编译程序在编译宏展开后的源程序时发 现。 (4)宏定义命令#define出现在函数的外部,宏名的有效范围是: 从定义命令之后, 到本文件结束。通常,宏定义命令放在文件开头处。 (5)在进行宏定义时,可以引用已定义的宏名 。 (6)对双引号括起来的字符串内的字符,即使与宏名同名,也不进 行宏展开
制作:方斌 912符号常量 在定义无参宏时,如果“语言符号字符串”是一个常量,则相应的 “宏名”就是一个符号常量。 恰当命名的符号常量,除具有宏定义的上述优点外,还能表达出它所 代表常量的实际含义,从而增强程序的可读性。 #define Eof-1 /*文件尾*/ #define nULL 0 /*空指针*/ #define min 1 /*极小值*/ e #define Max 31 /*极大值*/ #define STEP 2 /*步长*/
制 作:方 斌 9.1.2 符号常量 在定义无参宏时,如果“语言符号字符串”是一个常量,则相应的 “宏名”就是一个符号常量。 恰当命名的符号常量,除具有宏定义的上述优点外,还能表达出它所 代表常量的实际含义,从而增强程序的可读性。 #define EOF -1 /*文件尾*/ #define NULL 0 /*空指针*/ #define MIN 1 /*极小值*/ #define MAX 31 /*极大值*/ #define STEP 2 /*步长*/