学习试验箱9.4的时候,keil5编译遇到了警告,想要请教一下,为什么会出现这个警告
试试直接写0x7F吧 kksk 发表于 2023-4-9 20:25
试试直接写0x7F吧
直接写0X7F,就没有报错。我就是好奇,按照我上面图片写法~为什么会出现warnning hyl,co! 发表于 2023-4-9 20:27
直接写0X7F,就没有报错。我就是好奇,按照我上面图片写法~为什么会出现warnning ...
想了一下,8051默认的int是16位的,也就是这里的(1<<7)结果是0x0080,取反后是0xFF7F,显然在任何情况下都不可能与8位的sfr中的值相等
确实,平时在开发时很容易误认为int是8位 kksk 发表于 2023-4-9 20:41
想了一下,8051默认的int是16位的,也就是这里的(1
LED=~(1<<7);~这个是我写的一个语句,LED定义位unsigned char型.
按照你的说法的话,这个也应该出现warnning,但是这个LED=~(1<<7);语句没有出现warnning hyl,co! 发表于 2023-4-9 20:57
LED=~(1
事实上,和桌面端的C语言编译器不同,就算你这样写,Keil都是不会有任何提示的
而桌面端的C语言编译器则会给出warning(此处为gcc)
kksk 发表于 2023-4-9 21:22
事实上,和桌面端的C语言编译器不同,就算你这样写,Keil都是不会有任何提示的
而桌面端的C语言编译器 ...
好的~谢谢
页:
[1]