天津城市建设学院:《C程序设计语言》 第九章 预处理命令

第九章预她理命令 →9.1宏定义 →9.2文件包含处理 →9.3条件编译
第九章 预处理命令 9.1 宏定义 9.2 文件包含处理 9.3 条件编译

9.1宏定义 宏定义 用预处理命令# define命令指定的预处理。包括 不带参数和带参数宏定义两种。 不带参数宏定义 用一个指定的标识符代表一个字符串 # define标识符字符串 标识符称为宏名,字符串称为宏体。 在预处理时将该宏名用宏体替换,成为宏展开
9.1 宏定义 宏定义 用预处理命令#define命令指定的预处理。包括 不带参数和带参数宏定义两种。 不带参数宏定义 用一个指定的标识符代表一个字符串. #define 标识符 字符串 标识符称为宏名,字符串称为宏体。 在预处理时将该宏名用宏体替换,成为宏展开

9.1宏定义 说明 为与变量名区别,宏名一般习惯用大写字母表示 使用宏定义可以提高程序的通用性和可读性,易 于修改 预处理时不进行语法检查 #define pi 3.4159 宏定义不是c语句,不必加“;”,若有,则将 起处理 #define pi 3.14159 area=PI*r*r;/米area=3.14159;*米r;
9.1 宏定义 说明 为与变量名区别,宏名一般习惯用大写字母表示. 使用宏定义可以提高程序的通用性和可读性,易 于修改. 预处理时不进行语法检查. #define PI 3.l4l59 宏定义不是c语句,不必加“ ;”,若有,则将一 起处理。 #define PI 3.14159; area=PI*r*r; /* area=3.14159;*r*r;*/

9.1宏定义 宏定义的有效范围为宏定义处# define g98 到文件结束。可以用# undef命令main0 终止宏定义的作用域。 #undef g f10 宏定义时可以引用已经定义的宏名。 程序中用“”括起来的字符串不进行置换 宏定乂只作字符替换,不分配内存空间
9.1 宏定义 宏定义的有效范围为宏定义处 到文件结束。可以用#undef命令 终止宏定义的作用域。 宏定义时可以引用已经定义的宏名。 程序中用“”括起来的字符串不进行置换。 宏定义只作字符替换,不分配内存空间。 #define G 9.8 main() { ……} #undef G f1() {……}

9,1宏定义 带参数宏定义 带参宏定义的格式 # define宏名(参数表)宏体 #define s(a, b) atb area=S(2, 3) /米area=2*3;米 带参宏替换在形式上类似函数,也带有形参,调 用时也进行实参和形参的结合
9.1 宏定义 带参数宏定义 带参宏定义的格式: #define 宏名(参数表) 宏体 #define S(a,b) a*b area=S(2,3); /* area=2*3;*/ 带参宏替换在形式上类似函数,也带有形参,调 用时也进行实参和形参的结合

9,1宏定义 说明 对带参宏定义,宏体及其各个形参应该用圆括 号括起来。如: #define pi 3.1415926 #define s (r) Pi*r*r area=S(atb)/* area=PI*a+b*a+b */ m=1/S(a+b)/*m=1/PI*a+b*a+b*/ #define s(r Pi*(r)*(r) area=s(atb)/ area=PI*(a+b)*(a+b)*/ m=/S(a+b)/米m=1/PI*(a+b)*(a+b)*/ #define s(r(Pi*(r)*(r)) area=S(a+b)/*area=PⅠ*(a+b)米(a+b)米/ m=1/S(a+b)/*m=1/(PI米(a+b)*(a+b)米/
9.1 宏定义 说明 对带参宏定义,宏体及其各个形参应该用圆括 号括起来。 如: #define PI 3.1415926 #define S(r) PI*r*r area=S(a+b) /* area=PI*a+b*a+b */ m=1/S(a+b) /* m=1/PI*a+b*a+b */ #define S(r) PI*(r)*(r) area=S(a+b) /* area=PI*(a+b)*(a+b) */ m=1/S(a+b) /* m=1/PI*(a+b)*(a+b) */ #define S(r) (PI*(r)*(r) ) area=S(a+b) /* area=PI*(a+b)*(a+b) */ m=1/S(a+b) /* m=1/(PI*(a+b)*(a+b)) */

9,1宏定义 宏名与宏体之间以空格相隔,宏名中不能有空 格。例 #define s(r(pi(r)(r) area=S(a)/米area=(r)(PI*(r)米(r))(a)米/ 宏名不能用引号括起来 如:# define“YES”1将不进行宏替换。 同样宏替换中的宏名也不可用引号括起来,如 #define yes 1 printf (yes) 也不能进行宏替换
9.1 宏定义 宏名与宏体之间以空格相隔,宏名中不能有空 格。例: #define S (r) (PI*(r)*(r)) area=S (a) /* area=(r) (PI*(r)*(r))(a) */ 宏名不能用引号括起来。 如:#define “YES” 1将不进行宏替换。 同样宏替换中的宏名也不可用引号括起来,如: #define YES 1 printf(“YES”); 也不能进行宏替换

92文件包含 文件包含是指一个源文件可以将另一个源文件的 的整个内容包含进来 文件包含的格式: # include 系统只到存放C库函数头文件所在的目录中 寻找要包含的文件,成为标准方式。 # include“文件名” 系统首先在用户当前目录中检索,若没找到, 则按标准方式检索
9.2 文件包含 文件包含是指一个源文件可以将另一个源文件的 的整个内容包含进来。 文件包含的格式: #include 系统只到存放C库函数头文件所在的目录中 寻找要包含的文件,成为标准方式。 #include “文件名” 系统首先在用户当前目录中检索,若没找到, 则按标准方式检索

92文件包含 例文件包含举例 powers. h * #define sqr(x)((x)*(x)) #define cube(x)((x)(x)*(x)) #define quad(x)((x)*(x)*(x)*(X) /*ch810,c* #include #included: zhoulpowers h #define maX power 10 void maino int n printf("number It exp2 \t exp t exp4n printf("----t----lt-----t------In") for(n=1; <=MAX POWER; n++) printf( %02dt %3dt%/4d\t %/5d\n", n, sqr(n), cube(n), quad(n)
例 文件包含举例 /* powers.h */ #define sqr(x) ((x)*(x)) #define cube(x) ((x)*(x)*(x)) #define quad(x) ((x)*(x)*(x)*(x)) /*ch8_10.c*/ #include #include "d:\zhou\powers.h" #define MAX_POWER 10 void main() { int n; printf("number\t exp2\t exp3\t exp4\n"); printf("----\t----\t-----\t------\n"); for(n=1;n<=MAX_POWER;n++) printf("%2d\t %3d\t %4d\t %5d\n",n,sqr(n),cube(n),quad(n)); } 9.2 文件包含
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 天津城市建设学院:《C程序设计语言》 Chapter 8 Functions.ppt
- 天津城市建设学院:《C程序设计语言》 Chapter 7 Arrays.ppt
- 天津城市建设学院:《C程序设计语言》 Chapter 5 Control Flow.ppt
- 天津城市建设学院:《C程序设计语言》 Chapter 4 Input and Output.ppt
- 天津城市建设学院:《C程序设计语言》 Chapter 3 Data types, Operators, and Expressions.ppt
- 天津城市建设学院:《C程序设计语言》 第二章 算法 algorithm.ppt
- 天津城市建设学院:《C程序设计语言》 第十二章 文件.ppt
- 天津城市建设学院:《C程序设计语言》 第十一章 结构体与共用体.ppt
- 天津城市建设学院:《C程序设计语言》 Chapter 1 An Overview of c.ppt
- 《计算机导论》课程教学资源(PPT课件)第四章 高级语言软件开发能力培养.ppt
- 《计算机导论》课程教学资源(PPT课件)第三章 计算机操作能力培养.ppt
- 《计算机导论》课程教学资源(PPT课件)第七章 计算机网络能力培养.ppt
- 《计算机导论》课程教学资源(PPT课件)第六章 多媒体应用能力培养.ppt
- 《计算机导论》课程教学资源(PPT课件)第五章 信息系统开发能力培养.ppt
- 《计算机导论》课程教学资源(PPT课件)第二章 计算机硬件能力培养.ppt
- 《计算机导论》课程教学资源(PPT课件)第一章 计算机基础知识.ppt
- 《VisuaI Basic程序设计教程》 编程题答案.doc
- 《VisuaI Basic程序设计教程》 课程介绍.ppt
- 《VisuaI Basic程序设计教程》 教学安排.doc
- 《VisuaI Basic程序设计教程》 教学大纲.doc
- 天津城市建设学院:《C程序设计语言》 曲型考题.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第一章 An Overview of C(1.2)The feature of C.ppt
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第一章 准备.doc
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第六章 Unix的安全.doc
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第十四章 数据库安全.doc
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第十一章 万维网WwW安全.doc
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第十章 分布式系统安全.doc
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第十二章 密码学介.doc
- 中国科学技术大学:《计算机安全》课程教学资源(教案讲义)第十三章 网络安全.doc
- 《Visual FoxPro程序设计》 第一章 Visual FoxPro基础.ppt
- 《Visual FoxPro程序设计》 第七章 数组.ppt
- 《Visual FoxPro程序设计》 第三章 表单设计与应用.ppt
- 《Visual FoxPro程序设计》 第九章 菜单和自定义工具栏.ppt
- 《Visual FoxPro程序设计》 第二章 Visual Foxpro程序设计基础.ppt
- 《Visual FoxPro程序设计》 第五章 选择结构程序设计.ppt
- 《Visual FoxPro程序设计》 第八章 自定义属性和方法.ppt
- 《Visual FoxPro程序设计》 第六章 循环结构程序设计.ppt
- 《Visual FoxPro程序设计》 第十一章 数据库及其操作.ppt
- 《Visual FoxPro程序设计》 第十三章 查询与视图.ppt
- 《Visual FoxPro程序设计》 第十二章 结构化查询语言SQL简介.ppt