Linux中的C語言妙用(轉)
Linux中的C語言妙用(轉)[@more@] 1.兩個數比較大小 #define min( x,y) ({ typeof( x) _x = ( x); typeof( y) _y = ( y); (void) (&_x == &_y); //妙用!作用是檢查引數 x 和 y 的型別是否相同 _x < _y ? _x : _y; }) 2.連結串列的使用 這個不多說了,太棒了,可以由一個連結串列成員獲取宿主的指標 3.do{}while(0)的使用 #define func(x) do{...;}while(0) 4.結構體中的#define struct sock { struct sock_common __sk_common; #define sk_family __sk_common.skc_family #define sk_state __sk_common.skc_state ..... }; 5.使用C寫出的物件導向程式,透過給結構體中的成員賦予不同的函式指標而實現不同的功能,取代了大量的case語句 6.透過條件宏定義,同一函式名有不同的實現,方便呼叫此函式 #ifdef xxx #define func(x) do{實現;}while(0) #else #define func(x) do{}while(0) 7.零長度陣列 GNU C 允許使用零長度陣列,在定義變長物件的頭結構時,這個特性非常有用。例 如: struct minix_dir_entry { __u16 inode; char name[0]; }; 8.可變引數宏 在 GNU C 中,宏可以接受可變數目的引數,就象函式一樣,例如: #define pr_debug(fmt,arg...) printk(KERN_DEBUG fmt,##arg
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-965604/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下C語言程式設計(轉)LinuxC語言程式設計
- linux下傳送email的c語言程式碼(轉)LinuxAIC語言
- Linux-C語言LinuxC語言
- C語言(C++語言)中##(兩個井號)和#(一個井號)用法[轉]C語言C++
- C++中const的妙用C++
- C++語言概述 (轉)C++
- Linux下C語言程式設計簡介(轉)LinuxC語言程式設計
- C語言呼叫 Java(Linux)C語言JavaLinux
- Java語言和C++語言的差異 (轉)JavaC++
- 用C語言編寫Linux實用程式的藝術(轉)C語言Linux
- C語言---整型字串轉換C語言字串
- c語言函式庫(轉)C語言函式
- linux下使用mysql的C語言APILinuxMySqlC語言API
- 在LoadRunner中轉換字串大小寫的C語言函式字串C語言函式
- Linux下C語言程式設計基礎知識(轉)LinuxC語言程式設計
- C語言的隱式型別轉換C語言型別
- C語言常見的出錯資訊! (轉)C語言
- Unix C語言值得注意的地方(轉)C語言
- MinUnit – 最小的c語言測試模板 (轉)C語言
- C# 程式語言的未來功能 (轉)C#
- 【C語言學習筆記】再論快速排序的重要性與妙用空間C語言筆記排序
- C語言 C語言野指標C語言指標
- C語言---“C語言 誰與爭鋒?”C語言
- 【C語言】聊聊輾轉相除法C語言
- C語言動態呼叫庫(轉)C語言
- C語言連線Oracle (轉載)C語言Oracle
- c語言字串,數字轉換C語言字串
- C 語言程式設計(unix) (轉)程式設計
- C 語言常見問題(轉)
- Linux下C語言編譯的問題LinuxC語言編譯
- Linux核心C語言將升級LinuxC語言
- c語言實現linux抓包C語言Linux
- C語言與嵌入式C語言的區別C語言
- 網頁中隱藏幀的妙用 (轉)網頁
- C語言的本質(32)——C語言與彙編之C語言內聯彙編C語言
- switch語句的妙用
- C語言的HelloWorldC語言
- go語言與c語言的相互呼叫GoC語言