第九章编译预处理
第九章 编译预处理
第一节宏定义 1.不带参数的宏定义 般形式: # define宏名字符串 其中,“#”表示一条预处理命令,“ define”为 宏定义命令 “宏名”为一个合法的标示 “字符串”可以是常数、表达式、语句等 tH: #define Pi 3. 1415926
第一节 宏定义 1.不带参数的宏定义 一般形式: #define 宏名 字符串 其中,“#”表示一条预处理命令,“define”为 宏定义命令, “宏名”为一个合法的标示符 “字符串”可以是常数、表达式、语句等 如: #define PI 3.1415926
例:一个简单的宏定义 #define e 2.71427 # include“math.h” ma in float sum sum=sqrt(E)+E+E*E+E*E*E十E*E米; printf(“%f”,sum); 若要把E的值改为2.71427
例: 一个简单的宏定义 #define E 2.71828 #include “math.h” main() { float sum; sum=sqrt(E)+E+E*E+E*E*E+E*E*E*E; printf(“%f”,sum); } 若要把E的值改为2.71427 2.71427
关于不带参数的宏定义使用的说明 (1)#与 define之间一般不留空格,但宏名两边 必须有空格 (2)宏名习惯采用大写字母表示,以与变量名 区别,但也可以是小写 (3)宏定义与变量定义含义不同,宏定义只做 简单的置换,并不分配内存空间 (4)宏定义用宏名代替一个字符串,是一种机 械的置换,不做任何语法检查 如:# define a3.059
关于不带参数的宏定义使用的说明: (1)#与define之间一般不留空格,但宏名两边 必须有空格 (2)宏名习惯采用大写字母表示,以与变量名 区别,但也可以是小写 (3)宏定义与变量定义含义不同,宏定义只做 简单的置换,并不分配内存空间 (4)宏定义用宏名代替一个字符串,是一种机 械的置换,不做任何语法检查 如: #define A 3.o59
关于不带参数的宏定义使用的说明 (5)因为不是C语言,所以宏定义结尾不用加 5如:# define p2.7189 sum=P*kP sum2.7189;*2.7189;; (6)宏定义的嵌套使用 tH: #define PI 3. 1415926 tdefine r5. 5 tdefine circle 2.0* Pi= r # define AREA pi*R米R
关于不带参数的宏定义使用的说明: (5)因为不是C语言,所以宏定义结尾不用加 “ ; ” 如: #define P 2.7189; … … sum=P*P; sum=2.7189;*2.7189;; (6)宏定义的嵌套使用 如: #define PI 3.1415926 #define R 5.5 #define CIRCLE 2.0* PI* R #define AREA PI* R * R