c語言知識點

2021-10-25 14:41:17 字數 1504 閱讀 2208

關於##va_args

#

define

debug

(level,format,..

.)\if

(level >= g_printlevel)\\

else

\// 這裡的__va_args__表示可變引數,即上面...傳遞進來的多個引數,##是當傳入引數為0時,去掉前面,防止編譯出錯

// ##的另乙個用法如: #define xname(n) x ## n, 那xname(8)實際上被預編譯為x8,##相當於乙個連線作用

關於函式指標

typedef

uint32

(*ptest_cases)

(void);

uint32 bspsmmutest

(void);

smmu_print

(print_normal,

"smmu test start\n");

//tcupmuinit();if(

smmutestbuffermap()

)return smmu_test_err;

for(

;total<

sizeof

(cases)

/sizeof

(cases[0]

); total++)}

}

3.位域大小端

對於定義如下的結構體:

struct

yaabou_com

;大端:

00000000][

00000001][

00000002][

00000003

]資料:|abbcccdd||ddeeeeef||fffffggg||gggggggg|

小端:00000000][

00000001][

00000002][

00000003

]資料:|ddcccbba||feeeeedd||gggfffff||gggggggg|

4.轉字串

#

define

xyzhelloword

#define

my_str

(x) #x

printf(""

mystr

(x)"\n");

等同於 printf

("helloworld\n");

```d

5.```c

#define

define_sysop_type_param_func

(_op, _type)

\static

inline

void _op

##_type

(uint64 v)

\define_sysop_type_param_func

(dc, cvac)`

c語言 知識點

遞迴方法 遞迴相比迴圈時間上快些,但是 遞迴比較占用空間,如果遞迴的次數超過十萬次後會導致資源占用完畢 標準的 優化技巧 消除迴圈 函式迴圈 函式 就地擴充套件 公共子表示式消除 改進暫存器分配 省略執行時對陣列邊界的檢查 迴圈不變數 移動 操作符長度消減 把指數操作符轉變為乘法操作 把乘法操作變為...

c語言知識點

2019 3 4 typedef void voidp 等同於typedef void voidp voidp a a null 即定義了乙個可以指向任何型別的指標 typedef voidpf zallback open file func of voidpf opeaque,const char...

c語言知識點

目錄流程圖 輸入輸出 運算子資料型別及運算 指標動態分配記憶體 結構體原碼 補碼 反碼 庫函式變數 定義 初始化 為變數賦值,分配記憶體空間 變數作用域 每個變數和函式有兩個屬性 型別和儲存類別。儲存類別分靜態儲存區和動態儲存區 練習流程圖 n s圖 都不屬於關鍵字,屬於庫函式 浮點型 分母型 需要...