歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux中的C語言妙用

  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)




Copyright © Linux教程網 All Rights Reserved