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

標題: 請問C語言編譯器設置中volitate有什么用呢? [打印本頁]

作者: laopihappy123    時間: 2021-4-20 18:09
標題: 請問C語言編譯器設置中volitate有什么用呢?
我知道它的作用是讓編譯器不自動優化掉一些“它認為”需要優化的變量,因為寄存器比SRAM讀取要快,優化后就直接一直讀寄存器,不管sram了。。之類的。
但是我目前沒想到它在什么地方有什么用耶。。。。
有大神給我解答下么

作者: 啊哈哈123    時間: 2021-4-20 18:28
volitate修飾的變量 還可以理解為獲取變量值的時候 編譯器會重新從該變量地址獲取值,而不會從寄存器中讀取變量副本。
作者: laopihappy123    時間: 2021-4-20 18:54
啊哈哈123 發表于 2021-4-20 18:28
volitate修飾的變量 還可以理解為獲取變量值的時候 編譯器會重新從該變量地址獲取值,而不會從寄存器中讀取 ...

感謝回答 ,是的,我就是很好奇什么時候會發生sram里變量變了 寄存器內部不變的情況。。
作者: 黃youhui    時間: 2021-4-20 20:13
laopihappy123 發表于 2021-4-20 18:54
感謝回答 ,是的,我就是很好奇什么時候會發生sram里變量變了 寄存器內部不變的情況。。

我的理解就是全局變量在處理函數時變量突然被中斷改變
作者: 96578741251    時間: 2021-4-20 20:44
這種情況更多可能是比如引腳電平,如果你在程序里面一直寫讀取引腳電平,可能編譯器會優化掉,只從緩存里面讀取,但其實引腳連接的外部電平已經變化,單片機卻使用的是過時的數據,這時就需要volitate去修飾,讓單片機不要去偷懶,每次都讀一次引腳電平。這些其實在單片機的庫函數里面有大量體現,感興趣的話可以去翻翻看,學習一下




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