工程、预处理.pptVIP

  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文档。上传文档
查看更多
工程、预处理.ppt

提纲 使用工程组织多个源文件 多文件间数据共享和函数调用 预处理命令 1.使用工程组织多个源文件 程序是应该写成一个源文件还是多个源文件? 如果你的程序确实很小又很紧凑,那么当然应该把所有的源代码写在一个“.C”文件中。 如果你发现自己编写了许多函数(特别是通用函数),那么你就应该把程序分解成几个源文件(也叫做模块)。 把一个程序分解成几个源文件的过程叫做模块化程序设计(modular programming)。模块化程序设计技术提倡用几个不同的结构紧凑的模块一起组成一个完整的程序。 模块化和软件成本 模块化的好处 模块化的原因: 降低了系统的复杂性,使系统容易修改和重用; 推动系统各部分的并行开发,提高开发效率。 工程 使用工程来组织多个模块(源文件)。 将功能紧密相关的若干个函数组成单独的源文件。 对应于每一个源文件,建立头文件,内容是可供其他源文件使用的函数原型声明和相关的数据变量说明。 当源文件A.c要使用B.c中定义的函数或全局变量,只需添加#include”B.h”就可以直接在A.c文件中使用B.c文件中的函数或变量。 DEV-C++下工程的创建 DEV-C++下工程的创建 VC6环境下工程的创建 2.选择Projects选项卡,选择Win32 Console Application,在Project name文本框输入工程名(如elevator),在Location文本框选择路径如(如C:\test)(见下图)点击OK 提纲 使用工程组织多个源文件 多文件间数据共享和函数调用 预处理命令 全局变量的作用域仅在所属文件内 例: file1.c int solutions; // solutions是全局变量 main() { int i; //i是局部变量 … { char ch; //ch是局部变量 } } 大作业命名格式 1、班级号-组长学号-概要设计-版本号 2、班级号-组长学号-进度计划-版本号 3、班级号-组长学号-详细设计-版本号 4、班级号-组长学号-控制台版本-源代码-版本号.rar 5、班级号-组长学号-控制台版本-可执行程序-版本号.rar 提纲 使用工程组织多个源文件 多文件间数据共享和函数调用 预处理命令 条件编译 条件编译 使编译器能够按照不同条件编译不同的程序部分,产生不同的目标代码文件。 两种条件编译:使用常量表达式判断、使用宏定义名判断 条件编译目的: 调试:数据调试和语句调试 避免嵌套包含同一个头文件 条件编译 1.使用常量表达式判断,屏蔽或选择某段代码 条件编译 2.使用宏定义名判断 条件编译 调试阶段: #define DEBUG #ifdef DEBUG printf(“variable x=%d\n”,x); printf(“variable y=%d\n”,y); #endif 完成调试后,去掉#define 指令,就会在编译过程中忽略printf语句。 条件编译 怎样避免多次包含同一个头文件? 在创建一个头文件时,可以用#define指令为它定义一个唯一的标识符名称。 再通过#ifndef指令检查这个标识符名称是否已被定义,如果已被定义,则说明该头文件已经被包含了,就不要再次包含该头文件;反之,则定义这个标识符名称,以避免以后再次包含该头文件。 条件编译 #includestdio.h #define DEBUG //定义宏 main() { int age; char name[20]; printf(input your age\n); scanf(%d,age); printf(input your name\n); scanf(%s,name); 条件编译 #ifdef DEBUG printf(input age is:%d\n,age); #endif #undef DEBUG //取消宏定义 #ifdef DEBUG printf(input name is:%s\n,name); #endif system(pause); return 0; } input your age 30 input your name john input age is:30 请按任意键继续. . . * 工程、预处理 张艳梅 ymzhang@bupt.edu.cn 每个程序都有一个最适当的模块数目M,使得系统的开发成本最小

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档