找回密码
 立即注册
楼主: 980578873

编译器提示错误

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-22 14:16:55 | 显示全部楼层
zh*** 发表于 2023-3-22 12:41
如果不加extern
只要.c文件include这个.h,变量都会被定义一次,
会出现重复定义的错误

基于好奇心,我再想追问一下,在使用同时多个.c文件里面include<stc8h.h>,stc8h.h文件里面也没见使用extern,但是编译器却没有报重复定义的错误,这是什么原因?

点评

stc8h.h里面定义的是寄存器和宏定义,不是变量,有防止重复包含的语句,所以多个调用是不会警告的,如果你将防止重复包含的语句去掉,马上就会有错误提示。  详情 回复 发表于 2023-3-22 14:30
stc8h.h文件里面并没有定义变量  详情 回复 发表于 2023-3-22 14:30
  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-06-16 09:23:00

26

主题

1037

回帖

3946

积分

超级版主

积分
3946
发表于 2023-3-22 14:30:20 | 显示全部楼层
98057*** 发表于 2023-3-22 14:16
基于好奇心,我再想追问一下,在使用同时多个.c文件里面include,stc8h.h文件里面也没见使用extern,但是 ...

stc8h.h文件里面并没有定义变量
  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6090

回帖

1万

积分

超级版主

积分
12723
发表于 2023-3-22 14:30:56 | 显示全部楼层
98057*** 发表于 2023-3-22 14:16
基于好奇心,我再想追问一下,在使用同时多个.c文件里面include,stc8h.h文件里面也没见使用extern,但是 ...

stc8h.h里面定义的是寄存器和宏定义,不是变量,有防止重复包含的语句,所以多个调用是不会警告的,如果你将防止重复包含的语句去掉,马上就会有错误提示。
  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6090

回帖

1万

积分

超级版主

积分
12723
发表于 2023-3-22 14:33:01 | 显示全部楼层
98057*** 发表于 2023-3-22 11:42
在power_off.h文件中添加如下变量声明不就可以了吗?
unsigned int count_5ms_off;   为什么要前面加exte ...

没有外部声明,要么提示你重复定义,要么提示你未定义。
还是建议你仔细看一下C语言,这是基础中的基础哦。
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-22 16:19:42 | 显示全部楼层
梁*** 发表于 2023-3-22 14:33
没有外部声明,要么提示你重复定义,要么提示你未定义。
还是建议你仔细看一下C语言,这是基础中的基础哦 ...

好的,
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-22 16:20:26 | 显示全部楼层
zh*** 发表于 2023-3-22 14:30
stc8h.h文件里面并没有定义变量

好的,谢谢
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-22 16:41:26 | 显示全部楼层
zh*** 发表于 2023-3-22 14:30
stc8h.h文件里面并没有定义变量

我发有个单片机死机的帖子,麻烦帮忙去看看,感谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 03:44 , Processed in 0.437201 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表