關於##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圖 都不屬於關鍵字,屬於庫函式 浮點型 分母型 需要...