头文件被多次包含是什么意思?

头文件被多次包含是什么意思?,第1张

文件被多次包含是:如有一个大型程序,为了提高可读性,程序员是分多个文件编写,不会写在一个文件中的,这样的话程序员把每个文件都包含到主程序所在的文件中,不能多次包含,否则会出现编译出错!!!

但是库文件的话可以多次包含,因为库文件中预编译命令。预编译命令是看条件编译,如果条件成立编译,否则不编译,也就是你编译一个文件时已经编译过这个头文件,再编译另一个文件时不会再编译那条头文件。

有些头文件重复包含只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些

有些头文件重复包含,会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的)

如果头文件被循环包含的话,那就看你的编译器了

有的会智能处理,和只include一次一样

有的会报错

有的干脆死锁,导致编译程序崩溃(这个 只有很低级的编译器才会出 现在几乎看不到了)

不管怎样,用ifnde xxx #define xxx或者其他方式避免头文件重复包含,只有好处 没有坏处

是一个很好的习惯

为了说明这种错误,考虑下面的代码:

#include "x.h"

#include "x.h"

显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:

#include "a.h"

#include "b.h"

看上去没什么问题。如果a.h和b.h都包含了一个头文件x.h。那么x.h在此也同样被包含了两次,只不过它的形式不是那么明显而已。

多重包含在绝大多数情况下出现在大型程序中,它往往需要使用很多头文件,因此要发现重复包含并不容易。要解决这个问题,我们可以使用条件编译。如果所有的头文件都像下面这样编写:

#ifndef _HEADERNAME_H

#define _HEADERNAME_H


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7966719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存