导航:首页 > 文件管理 > c语言如何防止头文件重复调用

c语言如何防止头文件重复调用

发布时间:2025-09-30 06:18:58

⑴ C语言头文件中定义结构体的问题

C语言程序设计中,为防止头文件在同一编译单元被重复引用,常引入#ifndef宏来进内行保护,如:头文件容my_head.h

#ifndef_MY_HEAD_H_//如果没有定义宏_MY_HEAD_H_
#define_MY_HEAD_H_//则,定义该宏名
//以下是被保护的代码
//进行相应的全局变量和结构体类型定义
typedefstructstu{
inta;
intb;
}STU;
#endif//宏判断结束

这样,当整个代码中,多次引用这个my_head.h时,只有一次是生效的,系统编译时,如果检查宏_MY_HEAD_H_ 已经定义,就不会再进入被保护的代码区了。

PS: 宏名,一般是与头文件名相同,只是把字母全大写,前后加上下划线(_)

⑵ 关于自定义头文件在多个文件中引用时提示重复定义的问题(C语言)

#ifndef identifier_h
#define identifier_h
....
#endif
这套条件编译是为了防止同一个.c文件中包含多个相同.h文件的(比如专有一个.c文件包含了属a.h,a.h又包含了b.h,那么当你在这个.c文件中同时包含了a.h和b.h时,因为有上面的条件编译的关系而不会出错)。因为编译器在编译的时候是按照.c文件为单位编译的,每个.c文件编译成.o文件(linux系统)或者.obj(windows系统),然后再将这些.o文件链接起来,最后与运行库链接形成可执行文件(elf或exe文件)。

你在两个.c文件中包含了同一个.h文件。这根本和条件编译没什么关系。你在.h文件中定义了全局变量a, b, c。那么就表示你两个.c文件中,每个.c文件中都有这样的全局变量定义:int a, b, c;当每个.c文件单独编译当然没有问题,但是当它们链接起来的时候就出现问题了:两个.c文件中都有变量a b c,所以当然是重复定义啊。问题是出在链接的时候的。

阅读全文

与c语言如何防止头文件重复调用相关的资料

热点内容
wince平板开机密码 浏览:664
iphone7升级开不了机 浏览:405
电脑文件夹怎么找不到命名 浏览:740
u盘占内存无文件 浏览:983
人机五子棋java代码 浏览:209
金华数控机床编程培训哪个学校好 浏览:897
文件夹打开格式的文件怎么打开 浏览:873
stc15f104免手动程序 浏览:943
客户要我详情页里面的ps源文件 浏览:681
徐州中国少儿编程网课国内哪个好 浏览:798
什么是农产品网络营销 浏览:425
c语言如何防止头文件重复调用 浏览:338
为何不显示窗口工具 浏览:48
请选择有效的格式视频文件 浏览:588
文件系统参数块 浏览:590
苹果5可以tv投屏吗 浏览:987
ps打开后出现这种文件怎么办 浏览:719
苹果5手机构成 浏览:742
iphone5s的版本号a1533 浏览:764
pol是哪个文件 浏览:985

友情链接