C 語言幾個絕招

2021-06-15 18:38:22 字數 1041 閱讀 2136

1.

符號展開連線:

#definecat_token_1(t1, t2)t1##t2

#definecat_token(t1, t2)cat_token_1(t1,t2)

cat_token_1

直接將t1和t2

連線成t1t2

,而cat_token 將t1

和t2展開後再連線,如:

#definet1i_am_

#definet2lei_peng

cat_token_1(t1, t2)

的結果是

t1t2

cat_token(t1, t2)

的結果是

i_am_leipeng

cat_token

相當有用。2.將

0轉化為

0,而將非零轉化為

1,可以轉化指標

#define convert_bool(x) (!!(x))

3.編譯時斷言:

#define compile_assert(x)/

enum ;

// 或者

#define compile_assert_2(x)/

void cat_token(comp_assert_fun_,__line__)(int x[x]);

4.定義

handle

型別#definedefine_handle_type(handle_type)/

struct param_##handle_type;/

typedefvoid(*handle_type )(struct param_##handle_type);

將handle

定義為函式指標主要有乙個好處:就是禁止了對

handle

的加減,防止了一些小錯誤的發生。

5.定義

union

中的匿名

struct

structmy_type u1;

struct u2;

struct u3;

};};

C 語言的幾個層次

接到一位前不久c 培訓學員的來信,這位學員雖然以前功底欠缺,但學習勁頭很足,在培訓中成長很快。即便基本吃透 net框架 修訂版 還嫌不夠過癮,一心要成為高手中的高手。來信的目的是希望我來指點高階方向。說實話,我一般不想在這些有關個人發展的大是大非的問題上給人指導,因為太多親身或眼見的經歷告訴我人生實...

C 語言的幾個層次

接到一位前不久c 培訓學員的來信,這位學員雖然以前功底欠缺,但學習勁頭很足,在培訓中成長很快。即便基本吃透 net框架 修訂版 還嫌不夠過癮,一心要成為高手中的高手。來信的目的是希望我來指點高階方向。說實話,我一般不想在這些有關個人發展的大是大非的問題上給人指導,因為太多親身或眼見的經歷告訴我人生實...

C語言的幾個函式

一 strcat函式 在標準函式中,strcat函式是在檔案中宣告.strcat函式作用是指把第二個字串的所有元素追加到第乙個字串的尾部。string.h strcat宣告定義 extern char strcat char const char 在追加過程中,並不會檢測s所指的記憶體空間容量和內容...