每日一题(46)—— volatile
生活随笔
收集整理的這篇文章主要介紹了
每日一题(46)—— volatile
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.一個變量可以既是const 還是volatile嗎?解釋為什么?
可以,例如狀態寄存器。它首先應該是volatile 因為它可以出乎意料的修改,而且應該是const,這個寄存器程序不應該去修改。
2.一個指針可以說volatile的嗎?
可以,例如中斷服務子程序中修改一個指向buffer的指針。
3.下列代碼有錯誤嗎?
Int square(volatile int *ptr)
{
Return *ptr **ptr;
}
答:由于ptr聲明為volatile類型的所以編譯器可能編譯完的程序是:
int?square(volatile?int?*ptr)
{
????int?a,b;
????a?=?*ptr;
????b?=?*ptr;
????return?a?*?b;
}
則得出的結果可能不是想要的結果;
正確的程序這樣寫:
long?square(volatile?int?*ptr)
{
????int?a;
????a?=?*ptr;
????return?a?*?a;
}
總結
以上是生活随笔為你收集整理的每日一题(46)—— volatile的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NI Multisim 14.0蜂鸣器为
- 下一篇: 压缩文件后缀解析