[技术问答] 关于#ifndef… #define… #endif的问题,求解释

[复制链接]
566|4
 楼主| kiwis66 发表于 2022-9-4 20:30 | 显示全部楼层 |阅读模式



在我第一次接触#ifndef… #define… #endif的时候,就不停的有人告诉我,在写头文件时要加上这些语句,否则当此头文件被多个源文件包含时,编译时会产生重定义的错误!!!
然后,我每次就乖乖的加上了,确实没产生过重定义的错误。
但天生喜欢探索、敢于尝试的我今天偏不信邪就在外部中断实验中,把sys.h文件里的 #ifndef… #define… #endif 语句注释了,然后在MDK里编译……
结果是没发生任何错误!!奇怪了……怎么回事呢??


skyred 发表于 2022-9-4 21:01 | 显示全部楼层
C语言
条件编译了解一下
软核硬核 发表于 2022-9-5 13:28 | 显示全部楼层
你要看有哪些地方调用了【sys.h】头文件,如果只有一个地方那不报错也正常。
软核硬核 发表于 2022-9-5 13:29 | 显示全部楼层
如果不加【#ifndef… #define… #endif】当一个头文件被两个源文件调用,有可能会出现重复定义的报错!
软核硬核 发表于 2022-9-5 13:30 | 显示全部楼层
你首先要知道C语言的编译流程,再去学习一下这些条件编译语句,然后你就会豁然开朗了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

189

主题

1183

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部