C编译预处理与多文件工程程序PPT课件_第1页
C编译预处理与多文件工程程序PPT课件_第2页
C编译预处理与多文件工程程序PPT课件_第3页
C编译预处理与多文件工程程序PPT课件_第4页
C编译预处理与多文件工程程序PPT课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2014 07 21 高级语言程序设计 南京邮电大学计算机学院计算机软件教学中心 2014 07 21 高级语言程序设计 第09章编译预处理与多文件工程程序 3 内容提要 编译预处理的概念多文件工程程序的组织方式模块化程序设计的基本方法 4 9 1编译预处理 编译预处理 Preprocessor 编译器根据源程序中的编译预处理指令对源程序文本进行相应操作的过程编译预处理指令都以 开头它不是C语言语句 结尾不带 号三种编译预处理指令文件包含 Includingfiles 宏定义 MacroDefinition 条件编译 ConditionalCompilation 5 文件包含 头文件 HeaderFile 主要的作用是保存程序的声明 包括 功能函数原型 数据类型的声明等 如 stdio h math h string h等 文件包含指令的一般格式为 include到编译系统指定的标准目录 include 下去查找该头文件 若没有找到就报错 多用于包含标准头文件 include 头文件名 首先到当前工作目录中查找头文件 若没找到 再到查找编译系统指定的标准目录中查找 多用于包含用户自定义的头文件 5 6 宏定义 宏定义将一个标识符定义为一个字符串 在编译预处理时 源程序中的该标识符均以指定的字符串来代替 宏定义也称为宏替换 宏定义指令分为 无参宏指令带参宏指令 6 7 宏定义 无参宏指令 define例9 1无参宏指令应用示例 7 definePI3 14159 无参宏定义1 符号常量 defineISPOSITIVE 0 无参宏定义2 defineFORMAT Area f n 无参宏定义3 defineERRMSG Inputerror n 无参宏定义4 思考题 若在本例宏定义命令的后面都加上 号 程序是否还能正确编译 8 宏定义 带参宏指令 define 例9 2带参宏指令应用示例 8 defineSUB a b a b 带参宏定义 c SUB a b 替换为 c a b c SUB 3 1 2 替换为 c 3 1 2 结果不为0 思考题 如何修改本例宏定义使得SUB 3 1 2 的结果为0 9 宏定义 取消宏定义指令 undef例如 undefPI表示取消标识符PI的宏定义 9 10 条件编译 条件编译指令格式1 ifdef else endif例9 3条件编译指令应用示例用于程序的调试信息的输出 10 11 条件编译 条件编译指令格式2 ifndef else endif可以用来防止头文件的重复包含具体下面9 2节介绍 11 12 9 2多文件工程程序 多文件工程程序 ProjectwithMultipleSourceFiles 程序代码按一定的分类原则被划分为若干个部分 也称为模块 Module 优势 使程序结构更加清晰便于程序的分工协作开发便于程序的维护 12 13 多文件工程程序的组织结构 将不同的功能和数据结构划分到不同的模块中不同类型的程序放在不同的 c 源文件中将函数的定义和使用相分离将函数的定义从程序其他代码中分离出来 单独存放 有利于函数的重用将函数的声明和实现相分离将函数的原型声明放在一个 h 头文件中将函数的具体实现放在另一个 c 源文件中 13 14 多文件工程程序的组织结构 例9 4设计一个多文件工程程序 其功能是计算圆和矩形的面积和周长 在VC 环境下分析程序结构 并运行之 14 注意 main c中 include circle h 等使用了双引号 注意 circle h等中使用了条件编译指令 防止函数被重复声明 15 外部变量与外部函数 在一个程序文件中定义的变量或函数被其他程序文件所使用外部变量 ExternalVariable extern 外部函数 ExternalFunction extern 15 16 外部变量与外部函数 例9 5外部变量与外部函数示例 16 A c externvoidfb externvoidfc intx 0 B c externintx voidfb C c externintx voidfc 思考题 若B c文件中删除外部变量声明语句 externintx 程序是否还能正确编译 17 静态全局变量与静态函数 限制所定义的变量或函数只能在本文件中使用 而其他文件不能访问 静态全局变量 StaticGlobalVariable static 静态函数 StaticFunction static 17 思考题 修改例9 5将A c中变量x的定义改为staticintx 0 将B c中函数fb 定义前加上static 重新编译程序 结果如何 18 9 3应用举例 多文件结构处理数组问题 例9 6设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论