久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: C語言 為什么判斷同一個數,switch不能判對,而if能呢 [打印本頁]

作者: billaj    時間: 2023-11-3 15:27
標題: C語言 為什么判斷同一個數,switch不能判對,而if能呢
問題如圖,IR_Val的定義是uint32_t,case的程序是stm8能用的,我現在要移到stm32上,keil給我判錯,請問有知道這是什么問題嗎?先謝謝大家

1122.png (20.66 KB, 下載次數: 43)

1122.png

作者: Hephaestus    時間: 2023-11-3 18:22
可以看一下生成的匯編代碼。
作者: Hephaestus    時間: 2023-11-3 18:50
在MDK中,右鍵項目,彈出options for target,然后在c/c++標簽中的Misc Controls里面加上“--asm”就可以輸出匯編文件了,在obj目錄里面的s文件就是c語言對應的匯編。
作者: wulin    時間: 2023-11-3 18:54
switch()括號中只可以允許int、char、bool、enum類型,別的類型不可以。
作者: Hephaestus    時間: 2023-11-3 19:00
wulin 發表于 2023-11-3 18:54
switch()括號中只可以允許int、char、bool、enum類型,別的類型不可以。

但是你說的跟樓主描述的完全相反,uint32_t在STM8編譯器里面是long,不符合你的要求,但是人家好用。在MDK里面是unsigned int類型,樓主的數據最高位都是0,也就是說都是正數,與int類型完全等效。
作者: billaj    時間: 2023-11-4 15:36
Hephaestus 發表于 2023-11-3 18:50
在MDK中,右鍵項目,彈出options for target,然后在c/c++標簽中的Misc Controls里面加上“--asm”就可以輸 ...

大佬,我就學了下下匯編。。。好多年了,現在是看不懂的咯

1.png (89.47 KB, 下載次數: 52)

1.png

2.png (132.27 KB, 下載次數: 46)

2.png

作者: billaj    時間: 2023-11-4 15:53
難道是CASE只能是16位???
作者: Hephaestus    時間: 2023-11-4 16:13
billaj 發表于 2023-11-4 15:53
難道是CASE只能是16位???

你貼的代碼確實只比較了低16位,也可能高16位都一樣,前面另外判斷了,代碼不全不能確定。
作者: univers    時間: 2023-11-4 16:37
應該可以的,可能你這個數有點問題,,char 還是int還是浮點型。也可以把這幾句單獨在調試一下,就一目了然了。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲一区欧美一区 | 亚洲天天干 | 国产无限资源 | 999久久久精品| 永久免费av网站 | 一区二区三区四区在线播放 | 亚洲一区二区三区在线 | 日韩精品视频在线 | 国产在线www | 欧美精品www | 国产欧美精品一区二区色综合 | 日韩视频一区 | 欧美激情网站 | 少妇一级淫片免费放 | 成年人免费看片 | 超碰在线网站 | 国产成人精品亚洲男人的天堂 | 亚洲精品蜜桃 | 欧美精品一区在线观看 | 一区二区三区免费观看 | 在线观看小视频 | 日本成人精品 | 一区二区免费在线观看 | 成人在线视频免费观看 | 国产精品成人一区 | 日本加勒比在线观看 | 黄色在线免费看 | 成人黄色在线视频 | 久久av一区二区三区亚洲 | 日韩网站免费观看 | 欧美在线播放视频 | 男人天堂网在线 | 日韩视频免费在线观看 | 日韩中文字幕免费 | 午夜精品福利视频 | 亚洲天堂一区 | 国产女优在线 | 夜夜骚av | 国产乱淫av | 日韩视频免费看 | 亚洲精品日本 |