零碎的学习笔记二

(1)头文件保护符
在程序中经常会包含多个头文件,有时也会有自己编写的头文件,而自己写的头文件有时因为需要又会包含其他头文件,这样,在一个包含这些头文件的程序中,同一个头文件可能会被包含多次,有可能会造成程序不能正常工作。因此有了头文件保护符的概念。
头文件保护符依赖于预处理变量,预处理变量有两种状态:已定义和未定义。

#define指令把一个名字设定为预处理变量;
#ifdef当且仅当变量已定义时为真;
#ifndef当且仅当变量未定义时为真。
一旦检查结果为真,执行后续操作直到遇到#endif指令为止。
因此在头文件中保持这样的格式就能防止重复包含的发生:

/**这里假定头文件名为header_protector.h
 **头文件保护符为HEADER_PROTOR_H
 **/
#ifndef HEADER_PROTECTOR_H
#define HEADER_PROTECTOR_H
//这里为头文件中不能被重复定义的内容
#endif
//这里为头文件中其他部分的内容

第一次包含header_protector.h时,#ifndef的检查结果为真,头文件被包含,HEADER_PROTOR_H变为已定义。后面如果再次包含header_protector.h时,#ifndef#endif之间的部分被忽略。
这里有几点注意事项:
1.整个程序中的预处理变量和头文件保护符必须唯一,通常做法是基于头文件中类的名字来构建保护符的名字(这时类的定义在头文件中处于不能被重复定义的部分),以确保其唯一性。
2.为了避免与程序中其他实体发生名字冲突,一般吧预处理变量的名字全部大写。
3.养成一个良好的习惯:头文件即使(目前还)没有被包含在任何其他头文件中,也应设置保护符。
我的理解大概就是这样,因为还没有投入大量实际的操作,因此有些地方可能理解的不到位,参考一些IDE中现成的头文件,这方面的应用还是蛮复杂的,所以具体的方法论请自行在实践中完善。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值