昨天群友發(fā)文詢問(wèn),為什么C語(yǔ)言里bool似乎占用4Byte,給bool賦值后,它后面的3個(gè)字節(jié) 內(nèi)容也被修改了,并且她還強(qiáng)調(diào)代碼沒(méi)有經(jīng)過(guò)編譯器優(yōu)化(-O0是關(guān)閉優(yōu)化的意思)。
一個(gè)定義為volatile的變量是說(shuō)這變量可能會(huì)被意想不到地改變,這樣,編譯器就不會(huì)去假設(shè)這個(gè)變量的值了。精確地說(shuō)就是,優(yōu)化器在用到這個(gè)變量時(shí)必須每次都小心地重新讀取這個(gè)變量的值,而不是使用保存在寄存器里的備份。