- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级语言程序设计 及其课程设计 ———— C语言 主讲人:傅守忠(基础教学部) E-Mail:szfu@; shzhfu@ 第二十三讲: 模块化程序设计 上一讲的主要内容 文件的格式化读写: fscanf(文件变量, 格式控制符, 变量地址(表) ); fprintf(文件变量, 格式控制符, 输出参数(表)); 重置文件指针:rewind(文件名); 移动文件指针: fseek(文件, 位移量, 方式); 方式:0---从头,1---当前位置,2---从尾 判断文件结束: feof(文件); 模块化程序设计 程序较大时,分成若干函数,便于阅读; 程序再大时(特别是需要几个人共同完成的大系统),这些函数可放在不同的源文件(**.c或**.cpp)中,分别编译,汇总连接。 每个源文件称为一个模块。 其中必须且只能有一个模块包括主函数main(), 这个模块叫主控模块。 全局外部函数 函数可以在多处(即多个模块中)声明,但只能有一处定义。 若所声明的函数不在本模块中定义,则需声明为(全局)外部函数,格式是在声明前面加上关键字extern. 例: 简单的外部函数实例 file1.cpp中: #include stdio.h extern void A( ); void main() { printf(\nMain function.); A(); printf(\nMain function.\n); } 多模块程序连接过程 Step 1. 建立工程; Step 2. 建立源文件1; Step 3. 建立源文件2; …… (或在工程中打开已有文件,编译时会提示是否将它加入当前的工程,选择加入) Step n: 分别编译个模块; Step n+1:建立(Build)生成可执行文件。 静态外部函数(内部函数) 只限本模块内调用的函数是静态外部函数(或内部函数),声明的前面加关键字static. 它的作用是:当编写不同模块的程序员各自又要定义自己使用的函数时使用,用静态外部函数(或内部函数)就不怕相互重名。 静态外部函数示例 //---file1.cpp中 #include stdio.h extern void A(); static void B(); void main() { printf(\nMain function.); A(); B(); printf(\nMain function.\n); } void B() { printf(\nFunction B in Main.); } 全局外部变量 在多处(即多个模块中)声明而共享使用,但只能一处定义的变量。 与全局外部函数类似,若所声明的变量不在本模块中定义,则需声明为(全局)外部变量,其格式也是在声明前面加上关键字extern. 例: 简单的外部变量实例 file1.cpp中: #include stdio.h extern int A[ ]; void main() { int i; for (i=0;i3;i++) printf(“%d\n“,A[i]); } 静态外部变量 只限本模块内使用的外部变量是静态外部变量,声明的前面加关键字static. 它的作用也是:各模块的程序员各自又要定义自己使用的外部变量,在本模块内个函数均可使用的变量. 用静态外部变量也不会发生与其它模块的外部变量重名。 注: 它与静态局部变量的意义不同. 静态外部变量示例 //---file1.cpp中 #include stdio.h int x=5; extern void A(); void main() { printf(\nMain x=%d,x); A(); printf(\nMain x=%d\n,x); } 变量的存储类型 (自动)局部变量: (auto) 类型 变量; 静态局部变量: static 类型 变量; 外部变量(全局变量): 寄存器变量: register 类型 变量; 动态分配单元: (不是变量, 是一种分配手段) 全局外部变量: extern 类型 变量; 静态外部变量(内部变量): static 类型 变量; 编译预处理——无参数宏指令 例 #include stdio.h #include stdlib.h #define PI 3.14159 #define N 5 #define format1 %-4d #define format2 %-4d %-4d #define crlf printf(\
原创力文档


文档评论(0)