嵌入式程序員需要了解的幾個(gè)問(wèn)題
dPS p1,p2;
tPS p3,p4;
第一個(gè)擴(kuò)展為struct s * p1, p2;
上面的代碼定義p1為一個(gè)指向結(jié)構(gòu)的指,p2為一個(gè)實(shí)際的結(jié)構(gòu),這也許不是你想要的。第二個(gè)例子正確地定義了p3 和p4 兩個(gè)指針。
晦澀的語(yǔ)法
16. C語(yǔ)言同意一些令人震驚的結(jié)構(gòu),下面的結(jié)構(gòu)是合法的嗎,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;
這個(gè)問(wèn)題將做為這個(gè)測(cè)驗(yàn)的一個(gè)愉快的結(jié)尾。不管你相不相信,上面的例子是完全合乎語(yǔ)法的。問(wèn)題是編譯器如何處理它?水平不高的編譯作者實(shí)際上會(huì)爭(zhēng)論這個(gè)問(wèn)題,根據(jù)最處理原則,編譯器應(yīng)當(dāng)能處理盡可能所有合法的用法。因此,上面的代碼被處理成:
c = a++ + b;
因此, 這段代碼持行后a = 6, b = 7, c = 12。
各位工程師們,做完這些測(cè)試有什么感受呢?是否能夠得心應(yīng)手呢,希望你們?cè)趯?lái)都能成為出色的工程師
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評(píng)論