打印
[STM8]

IAR EWSTM8变量重复定义

[复制链接]
567|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenjunt|  楼主 | 2018-9-6 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
软件突然出问题,后来查了代码,发现有个变量在同一个文件中定义了两次,而且定义语句完全一样....,貌似编译器把他们看成两个变量了

奇怪的是,EWSTM 没有提示错误或警告,有没有办法让编译器提出警告或错误?
沙发
gongche| | 2018-9-6 14:57 | 只看该作者
有个变量在同一个文件中定义了两次,要看定义的位置了,有时候就不会被报错。

使用特权

评论回复
板凳
huwr| | 2018-9-6 15:01 | 只看该作者
编译器把它们合并了吧?

使用特权

评论回复
地板
huanghuac| | 2018-9-6 15:04 | 只看该作者
把局部变量定义跟全局变量一样的名字又不会报错的,这是允许的

使用特权

评论回复
5
happy_10| | 2018-9-6 15:09 | 只看该作者
如果是两个完全一样的定义,编译器估计就当一个处理了,如果定义成两个不同类型的,那肯定报错的

使用特权

评论回复
6
chenjunt|  楼主 | 2018-9-6 15:12 | 只看该作者
两个定义语句完全一样,中间隔了几个其它变量定义。没有当成一个,是前面一个当全局,后面一个当局部,所以 编译器当成了两个 不同的变量

使用特权

评论回复
7
songqian17| | 2018-9-6 15:15 | 只看该作者

呵呵,解决了就好啊,很有效率的嘛

使用特权

评论回复
8
guanjiaer| | 2018-9-6 15:17 | 只看该作者
是的有时候自己会犯这种错误

使用特权

评论回复
9
chenjunt|  楼主 | 2018-9-6 15:20 | 只看该作者

嗯,预料中的结果,先结贴吧,多谢大家啦

使用特权

评论回复
10
yiyigirl2014| | 2018-9-6 18:24 | 只看该作者
这就是重定义,第一次定义后,就执行这个变量。当执行到第二次定义这个变量就等于换了身份了。

使用特权

评论回复
11
keaibukelian| | 2018-9-6 19:13 | 只看该作者
编程基础不过关

使用特权

评论回复
12
labasi| | 2018-9-6 19:16 | 只看该作者
这都是细致活

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

粉丝