2016 - 2024

感恩一路有你

c语言防止头文件重复 头文件被多次包含是什么意思?

浏览量:1710 时间:2021-03-17 03:02:36 作者:admin

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

一些头文件的重复包含只会增加编译工作的工作量,不会引起太多问题。这只是低效的编译。某些头文件的重复包含会导致错误,例如在头文件中定义全局变量(虽然不建议使用此方法,但C规范允许使用此方法)如果头文件包含在循环中,则取决于编译器。有些会智能地处理它,就像include one一样,有些会报告错误,有些会死锁,导致编译器崩溃(只有非常低级的编译器才能看到它)。不管怎样,使用ifnde XXX#define XXX或其他方法来避免头文件的重复包含只有好处没有坏处是个好习惯

~]?include文件的缺点是头文件可能被多次包含。要说明此错误,请考虑以下代码:?包括“x.h”?包括“x.h”?显然,文件x.h包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include “A.H”#include “B.H”看起来没问题。如果A.H和B.H都包含一个头文件x.H,那么x.H在这里也包含了两次,但是它的形式不是很明显。在大多数情况下,大型程序中会出现多次包含,这通常需要大量的头文件,因此不容易找到重复包含。为了解决这个问题,我们可以使用条件编译。如果所有头文件都按以下方式编写:#ifndef_uuheadername_uh#define uuheadername#则消除了多次包含的危险。第一次包含头文件时,将正常处理并删除符号uheadernameuh定义为1。如果再次包含头文件,则条件编译将忽略其内容。SymbolsHEADERNAMEuh根据包含的头文件的文件名命名,避免了其他头文件使用同一个Symbols引起的冲突。但是,您必须记住,即使头文件的所有内容都将被忽略,预处理器仍会读取整个头文件。由于此处理会减慢编译速度,因此应尽可能避免包含多个内容。

如何避免头文件被重复包含?

例如,b.cpp使用b.H,然后包含它。A.cpp也使用B.H,然后包括它。然后main函数同时使用b.cpp和a.cpp中的函数,因此main函数应该包括b.H,include a.H,,,,,并且a.H已经包括b.H

c语言防止头文件重复 数组下标的数据类型 c语言define用法举例

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。