C语言程序设计课件作者蔡启先第7章节C程序的模块化设计.pptVIP

  • 1
  • 0
  • 约1.12万字
  • 约 59页
  • 2017-11-12 发布于广东
  • 举报

C语言程序设计课件作者蔡启先第7章节C程序的模块化设计.ppt

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 文件

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档