c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...
正如我前面的文章提到的,C語(yǔ)言雖然已經(jīng)比較成熟,但是近些年來(lái)也是有所發(fā)展的——比如增加了許多新特性。遺憾的是,可能因?yàn)镃語(yǔ)言程序員的工資比不過(guò)互聯(lián)網(wǎng)程序員,國(guó)內(nèi)很多教材比較老舊,幾乎不涉及近些年來(lái)C語(yǔ)言新增的新特性。
C語(yǔ)言程序員的工資比不過(guò)互聯(lián)網(wǎng)程序員
事實(shí)上,目前大多數(shù)平臺(tái)已經(jīng)至少支持 C99 標(biāo)準(zhǔn),而 C99 中新增的一些特性或者關(guān)鍵字的確非常好用,能夠大大提升C語(yǔ)言程序的開(kāi)發(fā)效率,以及增加代碼可讀性。
restrict 關(guān)鍵字
例如,C99 中新增了 restrict 關(guān)鍵字,它能夠幫助編譯器優(yōu)化C語(yǔ)言代碼,生成效率更高的程序。
確切來(lái)說(shuō),restrict 是為C語(yǔ)言指針?lè)?wù)的關(guān)鍵字,程序員可以通過(guò) restrict 通知編譯器指針?biāo)饕齼?nèi)存的一些特征,便于編譯器有選擇的優(yōu)化代碼,生成高效程序。
restrict 關(guān)鍵字修飾指針時(shí),用于通知編譯器只有該指針以及該指針的派生值(例如指針+1)才用于訪問(wèn)指向的對(duì)象,別的指針不會(huì)和該指針一樣指向相同的對(duì)象。這有助于編譯器執(zhí)行優(yōu)化,稍后讀者可通過(guò)一個(gè)例子看到這一點(diǎn)。
這有助于編譯器執(zhí)行優(yōu)化
如果編譯器不能確定上面這樣的特征,將不敢執(zhí)行優(yōu)化,否則可能導(dǎo)致程序出現(xiàn)“未定義”的行為。原則上來(lái)說(shuō),合理的使用 restrict 關(guān)鍵字,可以讓最終的C語(yǔ)言程序提升相當(dāng)多的性能。
實(shí)例
接下里,本文將以兩個(gè)簡(jiǎn)單實(shí)例討論 restrict 關(guān)鍵字的作用,請(qǐng)看下面這段C語(yǔ)言代碼:
void updatePtrs(size_t *ptrA, size_t *ptrB, size_t *val){ *ptrA += *val; *ptrB += *val;}總結(jié)
以上是生活随笔為你收集整理的c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 购买主板股票的条件?
- 下一篇: 大话oraclerac集群、高可用性、备