C++對(duì)C的擴(kuò)展——register關(guān)鍵字增強(qiáng) register關(guān)鍵字:請(qǐng)求編譯器讓變量直接放到CPU內(nèi)部寄存器里面,而不是通過(guò)內(nèi)存尋址訪問(wèn),速度快。 在C語(yǔ)言中,register修飾的變量不能取地址,去寄存器變量的地址在C語(yǔ)言里面是會(huì)出錯(cuò)的。 同樣的代碼我們放到C++編譯環(huán)境下,發(fā)現(xiàn)編譯是通過(guò)的! 在C++中依然支持register關(guān)鍵字,C++編譯器有自己的優(yōu)化方式,不使用register也可能做優(yōu)化;并且C++中可以取得register變量的地址,C++編譯器發(fā)現(xiàn)程序中需要取register變量的地址時(shí),register對(duì)變量的聲明變的無(wú)效。早期的C語(yǔ)言編譯器不會(huì)對(duì)代碼進(jìn)行優(yōu)化,因此register變量是個(gè)很好的補(bǔ)充。 我們說(shuō)一下C++編譯器的優(yōu)化方式: 像for循環(huán)這種頻繁使用i的地方,C++編譯器會(huì)做優(yōu)化,將變量i放到寄存器里面,加快程序的執(zhí)行速度。也就是C++即使不用關(guān)鍵字register也會(huì)優(yōu)化。 【C++】筆記系列均為原創(chuàng),轉(zhuǎn)載請(qǐng)注明轉(zhuǎn)自微號(hào):Lightspeed-Tech 或 AutoCode 更多精彩資料,請(qǐng)關(guān)注!
|