ZMRGHY 发表于 2021-8-16 21:13 没必要这么复杂的 你在每个头文件中加入如下格式,然后你直接引用头文件就行了,系统会自动识别的 #ifndef __XXX_H__ #define __XXX_H__ //头文件具体内容 /******************************/ /******************************/ #endif /*__XXX_H__*/ |
| 这些行是选择性的头文件包含,以避免包含错误的头文件。 |
ZMRGHY 发表于 2021-8-16 21:13 你写的大意是对的,但是放的位置不对,应该放到头文件里面,这样c程序就不用写了。 |
sustlixin 发表于 2021-8-16 08:15 是的作用就是为了防止头文件重复包含。。。。 这个代码是我写的。。。。 记得以前看过防止头文件重复包含的C语言代码。。。好想不是这样写的。。。。就是想不起来了。。。 你知不知道,其它防止头文件重复包含书写方式呀??? |
| 防止头文件被重复引用,一般创建的.h文件会自带 |
|
#ifndef _DS18B20_H_ //如果没有定义_DS18B20_H_就编译以下的代码,如果定义了_DS18B20_H_,那么,到#endif之间的所有代码都没有用了 #define _DS18B20_H_ //这就是定义_DS18B20_H_ 这样就达到了防止重复包含头文件的效果了, 重复包含会编译出错,但好几个子程序都要用到包含某个头文件,#ifndef加#endif组合就是可以让多个子程序包含同一个头文件,又不会报错的 但是,你圈圈里面的,我感觉没有意义,因为#include <REG52.H> 头文件里面已经有#ifndef加#endif组合了 我用的时候是没有加这个,但并没有报错,功能也正常 |
| 防止头文件重复包含 |
| 没什么问题,这是条件预编译,就跟if的用法差不多,不过是预编译的时候判断一下,有没有include 相关的头文件,没有就include一遍 |