- 1
- 0
- 约1.12万字
- 约 59页
- 2017-11-12 发布于广东
- 举报
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); } Turbo c以项目(Project)的形式来组织文件模块。每个项目(可自行命名)由一个项目文件和多个源文件(Source Files)组成。项目文件的扩展名为.prj,其内容为本项目所包含的所有程序模块的名称,实际上也包括了各个源文件所包含的库文件。源程序文件的扩展名为.c,但只能有一个且必须有一个源文件含有main()函数。他们都是用户编写的多模块C程序文件。 7.2.2 Turbo C的程序模块化组织 7.3 编译预处理 编译预处理方式以命令的形式,指示在对源程序进行编译之前的预先处理。编译预处理命令的结果将和源程序一起编译产生目标代码。 编译预处理命令以#号打头,占用单独的一行,命令尾不能有“;”号。它可以放于程序中的适当位置,一般放在程序前面或函数的前面。 C语言提供的预处理功能主要有3种: 宏定义命令 #define 文件包含命令 #include 条件编译命令 #if…#else…#endif 7.3 编译预处理 7.3.1 宏定义 7.3.2 文件
您可能关注的文档
- 企业战略管理课件作者刘常宝第十章节.ppt
- 人工神经网络原理课件作者马锐第2章节.ppt
- AutoCAD2011及天正建筑8.2应用教程课件作者刘瑞新课件第2章节AutoCAD2011绘图基础.ppt
- AutoCAD2011及天正建筑8.2应用教程课件作者刘瑞新课件第5章节创建文字和表格.ppt
- 人工智能导论课件作者鲍军鹏人工智能-1绪论.ppt
- AutoCAD2011及天正建筑8.2应用教程课件作者刘瑞新课件第10章节建筑图绘制实例.ppt
- 人工智能及其应用课件作者孔月萍周继第3_071101章.ppt
- 人工智能及其应用课件作者孔月萍周继第5_071103章.ppt
- AutoCAD2012+TAr章节8.5建筑制图课件作者莫正波第1章节.ppt
- AutoCAD2012+TAr章节8.5建筑制图课件作者莫正波第5章节.ppt
- 2026年早餐车项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年量子芯片行业技术专利与行业发展分析报告.docx
- 2026年可视门铃用偏转线圈项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年稀土新材料行业行业规范分析报告.docx
- 2026年现场气象传感器项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年速溶咖啡技术创新与市场前景报告.docx
- 2025年黄精产业十年发展中药饮片创新报告.docx
- 2026年茶壶过滤网项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年建设规划模型项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年有线电视邻频前端项目可行性研究报告(市场数据调查、监测研究).docx
原创力文档

文档评论(0)