〔语言序设计 第九章编译预处理 任课老师:台安
第九章 编译预处理 任课老师:台安
编译预处理概念 编译:对源程序的说明和执行部分进行词法、语法分 析,生成代码,优化等。 编译预处理:在源程序文件中,加入“编译预处理命令′ 使编译程序在对源程序进行通常的编译之前,先对这些命 令进行预处理,然后将预处理的结果和源程序一起再进行 通常的编译处理,以得到目标代码(OBJ文件)。 C提供的编译预处理命令 宏命令( define) 文件包含命令( Include 条件编译命令 这些命令均以#开头,以区别于语句 上一页下一页 返回
上一页 下一页 返回 第九章 编译预处理 编译预处理概念 ❖编译:对源程序的说明和执行部分进行词法、语法分 析,生成代码,优化等。 ❖编译预处理:在源程序文件中,加入“编译预处理命令” , 使编译程序在对源程序进行通常的编译之前,先对这些命 令进行预处理,然后将预处理的结果和源程序一起再进行 通常的编译处理,以得到目标代码(OBJ文件)。 ❖C提供的编译预处理命令 ❖ 宏命令(define) ❖ 文件包含命令(include) ❖ 条件编译命令 ❖ 这些命令均以#开头,以区别于语句
第九章编译预处理 9.1宏定义 令9.1.1不带参数的宏定义 9.1.2带参数的宏定义 92“文件包含”处理 93条件编译 上一页下一页 返回
上一页 下一页 返回 第九章 编译预处理 第九章 编译预处理 ❖ 9.1 宏定义 ❖ 9.1.1 不带参数的宏定义 ❖ 9.1.2 带参数的宏定义 ❖ 9.2 “文件包含”处理 ❖ 9.3 条件编译
91宏定义 不带参数的宏 令一般形式:# define标识符字符串 tH: #define Pi 3. 1415926 作用:用标识符(称为“宏名”)P代 替字符串“3.1415926”。 在预编译时,将源程序中出现的宏名PI 替换为字符串“3.1415926” ,这一替换过 程称为“宏展开” 令# define:宏定义命令 上一页下一页 返回
上一页 下一页 返回 第九章 编译预处理 9.1 宏定义 ❖ 一、不带参数的宏 ❖ 一般形式: #define 标识符 字符串 ❖ 如: #define PI 3.1415926 ❖ 作用:用标识符(称为“宏名”)PI代 替字符串“3.1415926”。 ❖ 在预编译时,将源程序中出现的宏名PI 替换为字符串“3.1415926” ,这一替换过 程称为“宏展开”。 ❖ #define:宏定义命令
例91:宏定义 #define pi 3. 14159 main i float l,r,s Scan(f”,&r);“输入圆的半径 l=r*2.0*PI;圆周长 S=r*r米PI;圆面积 V=4.0/3.0*r*rr*PI;产球体积啊 printf(1=o of ns=oofnv=%fn,l,S,v) 上一页下一页 返回
上一页 下一页 返回 第九章 编译预处理 例9.1:宏定义 #define PI 3.14159 main( ) { float l, r, s, v; scanf(“%f”,&r); /* 输入圆的半径*/ l= r *2.0* PI; /* 圆周长*/ s=r*r*PI; /* 圆面积 */ v=4.0/3.0*r*r*r*PI; /* 球体积 */ printf(“l=%f\ ns=%f\nv=%f\n”,l, s,v); }