- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3. 头文件卫士(Header File Safeguard) 我们可以用条件编译指令作为“头文件的卫士”,它可以保证嵌套包含的头文件中不会出现内部链接属性的名称(例如全局常量、类型定义、类定义等)被重复定义。 头文件卫士的作用 例如,在头文件date.h中出现: #ifndef DATE #define DATE calss Date { int year,month,day; …… } #endif 3. 头文件卫士(续) 该条件编译指令的意思是:如果程序中没有定义名称DATE,则定义之,并且进一步定义名为Date的类(日期类),否则(DATE已被定义,也表明类Date已被定义),跳过类Date的定义。 //date.h #ifndef DATE #define DATE calss Date { int year,month,day; …… } #endif 这样即使date.h被嵌套包含,也能保证Date类不会在一个程序文件中被定义二次。 DATE是预编译名(编译开关),预编译名不是类型名,它仅在编译期存在。虽然名称可以任意,但一般取为与预编译内容(分支)有关的名称,例如Date是类名,则预编译名就取为DATE。 4. 宏定义指令 宏定义指令(define)用来定义符号常量、预编译名、函数等。 宏定义指令的作用 定义符号常量 #define 标识符 常量字面值 例如: #define pi 3.14159 // pi不能进入程序的调试与运行 这种用法已逐渐被常量声明所代替: const pi=3.14159; 4. 宏定义指令(续) 定义预编译名 #define 标识符 #ifndef DATE #define DATE calss Date { int year,month,day; …… } #endif 4. 宏定义指令(续) 宏定义函数 例如:(例6-8) #define MAX(a,b) ((a)(b)?(a):(b)) int a=1,b=0; MAX(a++,b); 注意:宏定义函数并不是真正的函数。编译预处理只是在出现“函数名”的地方,插入“代入参数”后的代码。 #define MAX(a,b) ((a)(b)?(a):(b)) int a=1,b=0; (a++)(b)?(a++):(b);// 原本是MAX(a++,b); * * * * * * * * * * * * * * * * * * * * * * * * * * * 3. 头文件的内容(续3) 模板声明和定义 例如:templateclass T class A{…}; 名空间定义 例如:namespace N{…}; 预编译命令 例如:#include iostream 函数原型(函数声明) 全局(符号)常量数据声明 外部数据声明 类型定义 3. 头文件的内容(续4) 函数原型(函数声明) 全局(符号)常量数据声明 外部数据声明 类型定义 模板声明和定义 名空间定义 预编译命令 可以看出,头文件的内容就是源程序所需的外部资源一览表,只要头文件上有的(例如函数声明),就可以按语法格式去使用。 注意:头文件一定不能包括如下内容: 全局变量定义,如 int a; 函数定义,如 void f(){…}; 理由:如果含有全局变量定义、函数定义的头文件被其它源程序文件所包含,就会出现多处(次)定义。 6.3 全局数据(Global Data) 1. 什么叫全局数据 在所有函数之外声明的数据(包括变量和常量)称为全局数据。 全局数据存放在程序的全局数据区,其作用域是全局的,也即在整个程序运行期间有效,可以被程序中的每一个函数访问。 例如: int a; const int MAX=100; void f1(){…} void f2(){…} …. void main(){…} 例如:a和MAX可以被f1、f2、main等函数访问。 #include iostream.h int n; char ret=t; void f1(int ); void main() { int v1,v2;
您可能关注的文档
最近下载
- 史铁强《大学俄语(5)(东方新版)》【词汇短语+课文精解+单元语法+全文翻译+练习答案】(урок.pdf VIP
- 新22J05 公用卫生间、住宅厨房及卫生间.docx VIP
- 第11课 中国古代的民族关系与对外交往 课件(共32张PPT)2025年统编版高中历史选择性必修1.pptx VIP
- 流感及甲型h1n1流感防治.ppt VIP
- 各种品牌电视机总线调整资料.doc VIP
- 课程设计说明书UASB.docx VIP
- 螺杆压缩机大修技术协议.docx VIP
- 企业应急救援队伍教育训练大纲 .pdf VIP
- 《短歌行》《归园田居(其一)》情景默写(附参考答案)--统编版高中语文必修上册.pdf VIP
- T_AHEMA 002—2020_HDPE土工膜漏点双电极法测量.pdf VIP
文档评论(0)