国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中奇怪的C語言特性

2020-02-24 14:36:55
字體:
供稿:網(wǎng)友

本文講述的是C語言中奇怪的C語言特性,下面列出的特性未必奇怪,有的算是有趣,是不是特耐人尋味,不賣弄關(guān)子了,喜歡的朋友一來來領(lǐng)略其中的內(nèi)容詳情。

1)a[2] 等價于 2[a]

"aabbccdd"[5] 等價于 5["aabbccdd"]

這條特性可以用于使用數(shù)組、指針、字符串,但不能用在變量定義時。K&R C Programming language 217頁對此有介紹。

2)二元、三元復(fù)合字符

http://en.wikipedia.org/wiki/Digraphs_and_trigraphs

字符串字面值??!將被認(rèn)為是|,所以兩個問號同時出現(xiàn)在字符串的時候一定要小心。二元復(fù)合字符在C99被引入,如<:>

3)Duff's Device

http://en.wikipedia.org/wiki/Duff%27s_device

特點是switch與while交錯出現(xiàn)。代碼類似

image

4)同名同姓現(xiàn)象

image

在《C陷阱與缺陷》中有詳細(xì)解釋。

5)a[i++]= i;

這個好像是依賴特定編譯器實現(xiàn),我在Xcode實驗結(jié)果為先對a[i]賦值i,然后操作i++。此類代碼一定要小心。如果你在做code review發(fā)現(xiàn)++ –出現(xiàn)在其它表達(dá)式中或者作為參數(shù)出現(xiàn),一定要立刻馬上把它移出來作為單獨語句,小心駛得萬年船。

6)sizeof

sizeof(x), x可以是一個表達(dá)式或者類型名,如果是表達(dá)式,不做運(yùn)算,int x = 1; size_t sz = sizeof(x++); X不會增加。T *p = NULL; p = malloc(sizeof *p); p并沒有提領(lǐng),K&R圣書也有講。

sizeof unary-expr; sizeof(typename);一元表達(dá)式可以沒有括號,圣書里面語法部分提到。如size_t f = sizeof 99;

7)宏定義要小心

例如:#define FOO(a,b) (a+b)/(1-a)如果這樣調(diào)用FOO(bar++,4),自增兩次,當(dāng)然,把宏展開就非常清楚了。

以上就是C語言中奇怪的C語言特性的全部內(nèi)容,如果大家想了解更多相關(guān)內(nèi)容,請持續(xù)關(guān)注本站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 社旗县| 友谊县| 阿拉善右旗| 安庆市| 咸丰县| 马边| 新昌县| 临沧市| 灵璧县| 桃江县| 涪陵区| 平和县| 长垣县| 灵寿县| 成安县| 刚察县| 田阳县| 厦门市| 顺义区| 聂荣县| 永泰县| 佛坪县| 澄迈县| 韩城市| 乌拉特前旗| 平原县| 桂阳县| 博客| 沿河| 视频| 疏勒县| 屏边| 乌恰县| 宣威市| 利津县| 衡水市| 阳信县| 即墨市| 南溪县| 大埔区| 布尔津县|