歡迎您光臨本站 註冊首頁

簡單介紹 Linux 中的 C 語言妙用

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

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)

[火星人 ] 簡單介紹 Linux 中的 C 語言妙用已經有477次圍觀

http://coctec.com/docs/linux/show-post-189767.html