C++头文件形式

头文件对编译器的意义

在使用库函数时,头文件会告诉编译器那些库时可用的。过去,C允许简单的进行函数声明,以避免打开或者包含该文件而略微的提高编译器的速度,但在现在的编译器而言影响可以忽略,另一个原因是,简单的函数声明容易造成适应错误,但该错误暂时并不影响正确连接,但在出现的时候排查起来较困难。而使用头文件又很容易避免出现该错误,所以显得头文件很重要。

C++头文件在项目中的应用

C++项目中最好的方法是使用库,也就是将相关的函数集成到同一个对象模块或库中,并使用同一头文件存放函数的声明,达到将数据相联系起来,也可以保证在整个系统中声明的一致性。

有效的头文件

头文件存放什么

基本原则是“只限于声明”,即只限于编译器的信息,不涉及通过生成代码或创建变量而分配存储的任何信息。
原因在于C++的一次定义规则:可以对事物声明任意多次,但是对于每个事物只能实际定义一次。也就是头文件一般会包含在项目的多个翻译单元中(多次引用),如果一个标识符在多处被分配存储,那么连接器就报告多次定义错误。
当然,如果在头文件中定义一个“文件静态”变量(仅在一个文件内可视的变量),那么在整个项目中会有该数据的多个实例,但连接器不会冲突。

多次声明问题

编译器认为重声明结构(包括struct,class)是一个错误,因为它允许不同的类型使用同一个名字。
C/C++都允许重声明函数,只要两个声明匹配即可,但都不允许重声明结构。

预处理器指示

预处理器指示#define可以用来创建编译时标记。

#ifdef FLAG
#endif // FLAG
#ifndef FLAG
#endif

头文件的标准

对于包含结构的每个头文件,首先通过测试预处理的标记检查是否已经设置。如果文件中没有包含,则进行设置。
防止多次包含的预处理语句称为 包含守卫(include guard)

#ifndef H_FLAG
#define H_FLAG

#endif // H_FLAG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值