导航:首页 > 文件管理 > 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语言如何防止头文件重复调用相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接