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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1741|回復: 8
收起左側

C語言 為什么判斷同一個數,switch不能判對,而if能呢

[復制鏈接]
ID:388929 發表于 2023-11-3 15:27 | 顯示全部樓層 |閱讀模式
問題如圖,IR_Val的定義是uint32_t,case的程序是stm8能用的,我現在要移到stm32上,keil給我判錯,請問有知道這是什么問題嗎?先謝謝大家
1122.png
回復

使用道具 舉報

ID:883242 發表于 2023-11-3 18:22 | 顯示全部樓層
可以看一下生成的匯編代碼。
回復

使用道具 舉報

ID:883242 發表于 2023-11-3 18:50 | 顯示全部樓層
在MDK中,右鍵項目,彈出options for target,然后在c/c++標簽中的Misc Controls里面加上“--asm”就可以輸出匯編文件了,在obj目錄里面的s文件就是c語言對應的匯編。
回復

使用道具 舉報

ID:213173 發表于 2023-11-3 18:54 | 顯示全部樓層
switch()括號中只可以允許int、char、bool、enum類型,別的類型不可以。
回復

使用道具 舉報

ID:883242 發表于 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類型完全等效。
回復

使用道具 舉報

ID:388929 發表于 2023-11-4 15:36 | 顯示全部樓層
Hephaestus 發表于 2023-11-3 18:50
在MDK中,右鍵項目,彈出options for target,然后在c/c++標簽中的Misc Controls里面加上“--asm”就可以輸 ...

大佬,我就學了下下匯編。。。好多年了,現在是看不懂的咯
1.png
2.png
回復

使用道具 舉報

ID:388929 發表于 2023-11-4 15:53 | 顯示全部樓層
難道是CASE只能是16位???
回復

使用道具 舉報

ID:883242 發表于 2023-11-4 16:13 | 顯示全部樓層
billaj 發表于 2023-11-4 15:53
難道是CASE只能是16位???

你貼的代碼確實只比較了低16位,也可能高16位都一樣,前面另外判斷了,代碼不全不能確定。
回復

使用道具 舉報

ID:382454 發表于 2023-11-4 16:37 | 顯示全部樓層
應該可以的,可能你這個數有點問題,,char 還是int還是浮點型。也可以把這幾句單獨在調試一下,就一目了然了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国| 成av在线 | 中文字幕 国产精品 | 国产免费福利 | 成人在线一级片 | 亚洲精品国产成人 | 国产天堂| 午夜精品| 日本中文在线视频 | 91精品国产一区二区在线观看 | 国产剧情一区二区三区 | 久久精品国产一区二区电影 | 亚洲一区精品视频 | 天天综合久久 | 国产成人精品一区二区三 | 国产福利网站 | 日韩不卡在线 | 日韩欧美视频免费在线观看 | 欧美成人精品一区二区男人看 | cao在线 | 亚洲精品永久免费 | 国产成人在线视频免费观看 | 国产精品美女久久久久 | 久久久久久久一区 | 国产精品久久久久久久久久 | 久久成人人人人精品欧 | h视频在线播放 | 视频一二三区 | 91在线视频观看 | 欧美日韩在线观看一区二区三区 | 久久se精品一区精品二区 | www.性色| 欧美一级二级视频 | 国产91在线播放精品91 | 久久久久久久久久一区二区 | 国产精品1区 | 欧美另类视频 | 日韩免费av | 五月精品视频 | 国产999精品久久久久久 | 龙珠z国语版在线观看 |