欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: ucosiii的代碼里為什么沒用過 volatile關鍵字? [打印本頁]

作者: 254zhang    時間: 2020-9-17 18:29
標題: ucosiii的代碼里為什么沒用過 volatile關鍵字?
本帖最后由 254zhang 于 2020-9-17 18:33 編輯

在多線程和中斷中的變量需要加 volatile關鍵字來告訴編譯器不要優化該變量,每次都從內存地址讀取而不是寄存器的備份,但是我閱讀了ucOSiii的源碼,發現里面沒有用到這個關鍵字,比如像 OSIntNestingCtr 這種在中斷中更新,用來記錄中斷嵌套層次的變量都沒有使用 volatile關鍵字,這樣的代碼在開啟優化的時候不會出問題嗎?uc是成熟的代碼了,肯定不會犯這種錯誤,這里是另有什么玄機我沒發現碼,有誰知道咋回事?
作者: 心有浮生    時間: 2020-9-18 09:01
我也想知道,坐等大佬解釋一下
作者: TTQ001    時間: 2020-9-18 10:15
volatile關鍵字旨在防止編譯器對可能以編譯器無法確定的方式更改的對象進行任何優化。 實時操作系統具有非常嚴格的定義,可確保系統隨時運行。 因此,我們不希望編譯器更改這些定義和聲明。
作者: yzwzfyz    時間: 2020-9-18 14:24
再往下去一層分析分析……
作者: 0x00000000    時間: 2020-9-18 16:06
應該是有的,應該是把關鍵字重新定義了




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1