如果不加extern
只要.c文件include这个.h,变量都会被定义一次,
会出现重复定义的错误
基于好奇心,我再想追问一下,在使用同时多个.c文件里面include<stc8h.h>,stc8h.h文件里面也没见使用extern,但是编译器却没有报重复定义的错误,这是什么原因? 980578873 发表于 2023-3-22 14:16
基于好奇心,我再想追问一下,在使用同时多个.c文件里面include,stc8h.h文件里面也没见使用extern,但是 ...
stc8h.h文件里面并没有定义变量 980578873 发表于 2023-3-22 14:16
基于好奇心,我再想追问一下,在使用同时多个.c文件里面include,stc8h.h文件里面也没见使用extern,但是 ...
stc8h.h里面定义的是寄存器和宏定义,不是变量,有防止重复包含的语句,所以多个调用是不会警告的,如果你将防止重复包含的语句去掉,马上就会有错误提示。 980578873 发表于 2023-3-22 11:42
在power_off.h文件中添加如下变量声明不就可以了吗?
unsigned int count_5ms_off; 为什么要前面加exte ...
没有外部声明,要么提示你重复定义,要么提示你未定义。
还是建议你仔细看一下C语言,这是基础中的基础哦。 梁工 发表于 2023-3-22 14:33
没有外部声明,要么提示你重复定义,要么提示你未定义。
还是建议你仔细看一下C语言,这是基础中的基础哦 ...
好的, zhp 发表于 2023-3-22 14:30
stc8h.h文件里面并没有定义变量
好的,谢谢 zhp 发表于 2023-3-22 14:30
stc8h.h文件里面并没有定义变量
我发有个单片机死机的帖子,麻烦帮忙去看看,感谢。
页:
1
[2]