欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

奇怪的C語言特性

 更新時間:2013年04月11日 14:35:51   作者:  
下面列出的特性未必奇怪,有的算是有趣

下面列出的特性未必奇怪,有的算是有趣。

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

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

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

2)二元、三元復合字符

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

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

3)Duff's Device

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

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

image

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

image

在《C陷阱與缺陷》中有詳細解釋。

5)a[i++]= i;

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

6)sizeof

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

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

7)宏定義要小心

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

參考資料:

http://www.steike.com/code/useless/evil-c/

《C陷阱與缺陷》

相關文章

  • C語言中通用工具庫stdlib.h的一些常用函數(shù)

    C語言中通用工具庫stdlib.h的一些常用函數(shù)

    這篇文章主要給大家介紹了關于C語言中通用工具庫stdlib.h的一些常用函數(shù),stdlib.h頭文件包含了許多C標準庫函數(shù)的原型聲明和宏定義,這些函數(shù)主要與動態(tài)內存分配、隨機數(shù)生成、進程控制、字符串轉換等相關,需要的朋友可以參考下
    2024-01-01
  • C++對象模型和this指針詳解

    C++對象模型和this指針詳解

    這篇文章主要介紹了詳解C++對象模型和this指針,是C++入門學習中的基礎知識,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C++ STL入門教程(2) list雙向鏈表使用方法(附程序代碼)

    C++ STL入門教程(2) list雙向鏈表使用方法(附程序代碼)

    這篇文章主要為大家詳細介紹了C++ STL入門教程第二篇,list雙向鏈表使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C語言逆向分析語法超詳細分析

    C語言逆向分析語法超詳細分析

    這篇文章主要介紹了C語言逆向分析語法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • OpenMP深入剖析reduction子句教程

    OpenMP深入剖析reduction子句教程

    這篇文章主要為大家介紹了OpenMP深入剖析reduction子句教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • C語言數(shù)組超詳細講解中篇三子棋

    C語言數(shù)組超詳細講解中篇三子棋

    數(shù)組是一組有序的數(shù)據(jù)的集合,本篇將帶你結合數(shù)組來實現(xiàn)三子棋小游戲,上手實練更快的能夠掌握數(shù)組使用,感興趣的朋友來看看吧
    2022-04-04
  • 純C語言實現(xiàn)火車售票系統(tǒng)

    純C語言實現(xiàn)火車售票系統(tǒng)

    這篇文章主要為大家詳細介紹了純C語言實現(xiàn)火車售票系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Opencv光流運動物體追蹤詳解

    Opencv光流運動物體追蹤詳解

    這篇文章主要為大家詳細介紹了Opencv光流運動物體追蹤的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++ 中boost::share_ptr智能指針的使用方法

    C++ 中boost::share_ptr智能指針的使用方法

    這篇文章主要介紹了C++ 中boost::share_ptr智能指針的使用方法的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • VC++獲得當前進程運行目錄的方法

    VC++獲得當前進程運行目錄的方法

    這篇文章主要介紹了VC++獲得當前進程運行目錄的方法,可通過系統(tǒng)函數(shù)實現(xiàn)該功能,是非常實用的技巧,需要的朋友可以參考下
    2014-10-10

最新評論