C++函数详解与应用实例.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.9.1 头文件 自定义头文件: 除了系统定义的头文件外,用户还可以自定义头文件。对于具有外部存储类型的标识符,可以在其他任何一个源程序文件中经声明后引用,因此用户完全可以将一些具有外部存储类型的标识符的声明放在一个头文件中。具体地说,头文件中可以包括:用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量,而一般性的变量和函数定义不宜放在头文件中。 * PPT课件 3.9.2 多文件结构 在开发较大程序时,通常将其分解为多个源程序文件,每个较小的程序用一个源程序文件建立。程序经过建立、编译、连接,成为一个完整的可执行程序。多文件结构通过工程进行管理,在工程中建立若干用户定义的头文件.h和源程序文件.cpp。头文件中定义用户自定义的数据类型,所有的程序实现则放在不同的源程序文件中。编译时每个源程序文件单独编译,如果源程序文件中有编译预处理指令,则首先经过编译预处理生成临时文件存放在内存,之后对临时文件进行编译生成目标文件.obj,编译后临时文件撤销。所有的目标文件经连接器连接最终生成一个完整的可执行文件.exe。 图3.11是一个多文件系统的开发过程。 * PPT课件 3.9.2 多文件结构 编译 预编译 编译 预编译 预编译 编译 图3.11 C++程序开发过程 file1.h file1.cpp file2.h file2.cpp filen.h filen.cpp ? 临时文件1 临时文件2 临时文件n ? file1.obj file2.obj filen.obj ? Filename.exe .lib C++标准类库 连接 运行 * PPT课件 3.10 编译预处理(选读) 3.10.1 宏定义指令 3.10.2 文件包含指令 3.10.3 条件编译指令 * PPT课件 3.10.1 宏定义指令 1 不带参宏定义 用来产生与一个字符串对应的常量字符串,格式为: #define 宏名 常量串 预处理后文件中凡出现该字符串处均用其对应的常量串代替。替换过程称为宏替换或宏展开。例如,如果使用指令 #define PI 3.1415926 则程序中可以使用标识符PI,编译预处理后产生一个中间文件,文件中所有PI被替换为3.1415926。 宏替换只是字符串和标识符之间的简单替换,预处理本身不做任何数据类型和合法性检查,也不分配内存单元。 * PPT课件 3.10.1 宏定义指令 2 带参数的宏定义 带参宏定义的形式很象定义一个函数,格式为: #define 宏名 ( 形参表 ) 表达式串 例如作如下宏定义: #define S(a,b) (a)*(b)/2 程序中可使用S(a,b),预处理后产生中间文件,其中S(a,b)被替换成(a)*(b)/2。注意,宏定义形参通常要用括号括起来,否则容易导致逻辑错误。例如,如果定义: #define S(a,b) a*b/2 那么程序中的S(3+5,4+2)就会被宏展开为3+5*4+2/2,不符合定义的真正的意图。 带参宏定义形式上象定义函数,但它与函数的本质不同,宏定义仍然只是产生字符串替代,不存在分配内存和参数传递。 * PPT课件 3.10.2 文件包含指令 文件包含用#include指令,预处理后将指令中指明的源程序文件嵌入到当前源程序文件的指令位置处。格式为: #include 文件名 或 #include 文件名 第一种方式称为标准方式,预处理器将在include子目录下搜索由文件名所指明的文件。这种方式适用于嵌入C++提供的头文件,因为这些头文件一般都存在C++系统目录的include子目录下。而第二种方式编译器将首先在当前文件所在目录下搜索,如果找不到再按标准方式搜索。这种方式适用于嵌入用户自己建立的头文件。 * PPT课件 一个被包含的头文件中还可以有#include指令,即include指令可以嵌套,但是,如果同一个头文件在同一个源程序文件中被重复包含,就会出现标识符重复定义的错误。例如:头文件f2.h中包含了f1.h,如果文件f3.cpp中既包含f1.h,又包含f2.h,那么编译将提示错误,原因是f1.h被包含了两次,那么其中定义的标识符在f3.cpp中就被重复定义。避免重复包含可以用条件编译指令。 3.10.2 文件包含指令 * PPT课件 3.10.3 条件编译指令 1 用宏名作为编译的条件 格式为: #ifdef宏名 程序段1 [#else 程序段2] #endif 2 表达式的值作为编译条件 格式为: #if 表达式 程序段1 [#else 程序段2] #endif 当希望在不同条件下编译程序的不同部分。这种情况

文档评论(0)

锦绣中华 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档