请教一个简单的C语言相等判断问题

2019-12-22 13:50发布

<p> 被一个简单的问题搞蒙了,折腾了一晚上没解决,特来请教。</p><br><p> 在STM32F401上做过一个串口接收的程序,运行没问题。现在要移植到F103上,发现接收数据正确,用“==“判断却不相等。编译器是IAR 7.70.1</p><br><p> 在F401上判断0XA5,0X5A作为接收标志,接收判断没问题。在F103上接收正确,判断不能通过。后来改成判断0XA5,竟然也不行。</p><br><p> 如下图所示,不能进入断点。 </p><p><img src="https://image.xiaopingtou.net/data/attach/191222/5b054sbG.png" alt="230951oehwv6v6bnhrr4rl"><br></p><p><br></p>
25条回答
qiuchen
2019-12-23 15:45
redroof 发表于 2017-9-19 21:03
你说的不够清楚。
正规方法是任何全局变量只能在一个c文件里定义,这个c对应的h文件里写extern声明。别处 ...

我是在一个取名时user.h的文件中定义的,定义时没有加extern。有个.C文件中调用变量比较多,我就直接在这个文件中include,在main.c中用extern声明。
不知道在user.h中直接用extern声明是不是可以,这样的话实际就没有正常声明了。

一周热门 更多>