- 13
- 0
- 约1.12万字
- 约 59页
- 2017-01-01 发布于重庆
- 举报
7.1.1 程序的模块化与模块化程序设计 7.1.1 程序的模块化与模块化程序设计 7.1.1 程序的模块化与模块化程序设计 7.1.1 程序的模块化与模块化程序设计 7.1.1 程序的模块化与模块化程序设计 7.1.1 程序的模块化与模块化程序设计 7.1.1 程序的模块化与模块化程序设计 7.1.2 C语言模块化程序设计 7.1.2 C语言模块化程序设计 7.1.2 C语言模块化程序设计 7.1.2 C语言模块化程序设计 7.1.2 C语言模块化程序设计 7.1.2 C语言模块化程序设计 7.1.3 源文件之间的接口 7.1.3 源文件之间的接口 例7.4 无参宏替换例。 #include stdio.h #define WIDTH 60 #define LENGTH WIDTH+40 void main() { int area1,area2,area3; area1=WIDTH*5; /* 宏展开应为 area1=60*5; */ area2=LENGTH*5; /* 宏展开应为 area2=WIDTH+40*5; → area2=60+40*5; */ area3=WIDTH*LENGTH; /* 宏展开应为area2=60*WIDTH+40;→area2=60*60+40; */ printf(“area1=%d,area2=%d,area3=%d\n”,area1, area2,area3); printf(“WIDTH=%d,LENGTH=%d\n”,WIDTH, LENGTH); /* 宏展开应为 printf(“WIDTH=%d,LENGTH=%d\n”,60,60+40); */ } 这个例子说明: ① 宏替换只是简单的串替换,如以printf替换PR,以60替换WIDTH等。 ② 宏定义时可引用已有的宏定义,如宏名LENGTH的定义中引用了宏名WIDTH,当然WIDTH应先有定义。 ③ 为了正确地表示宏展开后的运算顺序,宏定义时可有意识地使用圆括号来包围定义的式子,如要表示LENGTH是一个整体的数据,可进行如下宏定义: #define LENGTH (WIDTH+40) 则 area2=LENGTH*5; 宏展开为 area2=(60+40)*5 area3=WIDTH*LENGTH; 宏展开为 area3=60*(60+40) ④ 程序中用双引号框住的字符串内的字符,即使与宏名相同,也不进行宏替换。如printf( )中的格式字符串里的WIDTH、LENGTH等字符。 例7.5 带参宏替换例 #include stdio.h #define R 10 #define POWER(x) ((x)*(x)*R) void main() { int a,b,c; float d; a=8; b=2; d=500.0; c=POWER(a+b); /* 宏展开应为 c=((a+b)*(a+b)*10); */ d=d/POWER(a+b); /* 宏展开应为 d=d/((a+b)*(a+b)*10); */ printf(“c=%d,d=%f\n”,c,d); } 7.3 编译预处理 编译预处理方式以命令的形式,指示在对源程序进行编译之前的预先处理。编译预处理命令的结果将和源程序一起编译产生目标代码。 编译预处理命令以#号打头,占用单独的一行,命令尾不能有“;”号。它可以放于程序中的适当位置,一般放在程序前面或函数的前面。 C语言提供的预处理功能主要有3种: 宏定义命令 #define 文件包含命令 #include 条件编译命令 #if…#else…#endif 7.3 编译预处理 7.3.1 宏定义 7.3.2 文件包含 7.3.3 条件编译 宏定义的功能是用一个指定的标识符来表示一个字符串,标识符称为“宏名”。 C语言的宏定义命令以#define打头。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的一串字符去替换,这一过程称为宏替换或宏展开。 另外,宏名不仅可以代表一串字符,还可以以带参数形式来扩展宏的使用。因此,宏可分为不带参数的宏和带参数的宏两种。 7.3.1 宏定义 1.不带参数的宏定义
您可能关注的文档
最近下载
- 【高考真题】2022年新高考物理真题试卷——湖南卷(含答案).pdf VIP
- 毕业设计论文-江苏工程职业技术学院.doc VIP
- 新人教版八年级物理下册第七章练习题.docx VIP
- 2022电网企业文化、电力与能源战略题库.pptx VIP
- 索尼A7RM3A使用说明书+入门帮助指南【完整电子版】.pdf VIP
- 【武汉市生鲜农产品的冷链物流发展现状、问题及对策探究16000字(论文)】 .pdf
- 2026版教师职称-山西-山西教师职称(基础知识、综合素质、高中信息技术)历年参考题库含答案解析5套.docx VIP
- 2020-2021学年江苏省淮安市淮阴中学八年级(上)期末物理试卷含解析.doc VIP
- 变压器油中溶解气体在线监测装置.docx VIP
- 2026年春新版二年级道德与法治下册教学计划(含教学进度表).pdf VIP
原创力文档

文档评论(0)