C语言程序设计 作者 朱立华 王立柱 C语言程序设计课件第7章091014.pptVIP

C语言程序设计 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计 第七章 模块化程序设计相关 内容提要 程序可以由多个源文件(多模块)组成,使变量的作用域和函数的调用范围被拓广了,产生下面两组概念: 外部函数与内部函数 外部变量与静态外部变量 const常类型的有关知识,了解指向const常量的指针作形参既高效又保证了对应实参变量不被修改 几种常用的编译预处理 无参宏指令和带参宏指令 条件编译指令 文件包含指令 模块化程序设计方法简介, 一个管理系统的模块划分 从多函数到多模块 多函数必定导致多模块: 一个程序如果定义有很多函数,为了便于控制,可以把这些函数按类划分,每一类包含在一个可以独立编译的源文件中,每个源文件称为一个模块 主控模块:是包含主函数的模块,程序永远只有一个主函数 多模块必定引起下列问题: 一个变量在某一个模块中定义,可能用于多个模块中 一个函数在某一个模块中定义,可能在多个模块中被调用 当变量或函数需要在其他非定义的模块中使用时,必须作声明,可以在多个模块中声明,但只能在一个模块中定义 当变量空间通过指针被多个模块共享时,如何保护数据 多个文件如何构成同一个程序 外部函数 函数定义和函数声明的区别: 函数声明(也称函数原型)是向编译器表示一个函数的名称、将接受什么样的参数、有什么样的返回值,使编译器能够检查函数调用的合法性,不为函数分配空间。 函数定义要求编译器生成函数代码,并为之分配存储空间。 在多模块程序设计中某函数可以被多个模块调用: 它的声明可以出现在多个模块中 它的定义只能出现在一个模块中 外部函数:该函数在模块B中定义,但是在模块A中需要调用,则必须在模块A中声明模块B中的该函数,形式: extern 返回类型 函数名(形参表); 外部函数 外部函数声明的位置(设模块B中定义的函数被模块A所调用): (1)在模块A的所有函数之外(一般最前面)声明 表7.2 外部函数示例 (2)在模块A的某个需要调用外部函数的函数体内声明 表7.3 在函数体内声明另一个外部函数 特别提醒: ⑴外部函数定义前不能带关键字extern。 ⑵一个函数在默认状态下就是外部函数,具有全局作用域,在同一个模块中声明函数时不加extern,但在其他模块中声明时,为增强可读性,通常需要加关键字extern。 内部函数 内部函数:只限于一个模块调用(其他模块不能调用)的函数,也称其为静态函数。 内部函数在声明或定义前带有关键字static 内部函数的定义和声明都必须在调用它的同一个模块中。 内部函数只能用于1个文件中,具有文件作用域 表7.4 内部函数示例 该例中,有三个模块,两个外部函数A和B,一个内部函数F,只在Main.c文件中起作用,一个main函数 外部变量 变量定义和变量声明的区别: 变量声明:向编译器表示一个变量的名称和类型,并不为其分配空间,在需要使用变量的模块中都要作出声明 变量定义:根据变量所属类型,为其分配特定大小的内存空间,数据存储格式也随之确定,每个变量只能定义一次 二者关系:只有一个模块的程序中变量的定义和声明是不分的,它们格式相同,定义也就是声明 在多模块程序设计中一个变量可以被多个模块使用: 外部变量声明可以出现在多个模块中 外部变量定义只能出现在一个模块中并初始化(默认初值为0) 外部变量 外部变量:该变量在模块B中定义,但是在模块A中需要使用,则必须在模块A中声明模块B中的该变量,形式: extern 类型名 变量名; 外部变量声明的位置(设模块B中定义的变量在模块A中被使用): (1)在模块A的所有函数之外(一般最前面)声明 表7.5 外部变量的全局作用域 (演示版作了简化) 该例中有一个外部变量,数组dys (2)在模块A的某个需要使用外部变量的函数体内声明 静态外部变量 静态外部变量:只限于一个模块使用(其他模块不能使用)的外部变量 静态外部变量在函数体外声明,声明前带有关键字static,这时的声明也就是定义,需要同时作初始化(默认初值为0) 静态外部变量只能用于当前文件中,具有文件作用域 当某个具有文件作用域的变量在函数内部用static声明(定义)时,就是6.4.2节所讲的静态局部变量了 表7.6 具有文件作用域的静态外部变量 各种变量的作用域与生存期 const常类型(选讲) const常类型存在的必要性: 一组数据通过在函数调用过程中传址,实现了其空间的共享。如果该数据只能读取,不能修改,即该数据空间是只读共享的,而在程序运行过程中,却被某个函数通过指针的间接访问修改,运行结果很可能不对 对于这类语义错误,要找到并修改这种错误就不容易了,尤其在多模块程序设计中。 在传址时对形参指针用const限定修饰符便可保护实参变量不被修改 将语

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档