十、宏定義和函數和typedef有何區別?

1.宏定義在編譯前完成替換,至關於直接插入代碼,替換以後的代碼參與編譯,運行時不存在函數調用,運行就更快。函數調用就須要跳轉到具體的函數,速度就更慢。ide

2.宏定義直接插入代碼,沒有返回值。函數有返回值。函數

3.宏定義沒有參數類型檢測,函數有參數類型檢測。it

4.宏定義後不加分號。編譯

------------------------------------------------------class

1.宏主要用於定義常量及書寫複雜的內容;typedef主要用於定義類型別名。數據類型

2.宏替換髮生在編譯階段以前,屬於文本插入替換;typedef是編譯的一部分。數據

3.宏不檢查類型;typedef會檢查數據類型。di

4.宏不是語句,不在最後加分號;typedef是語句,要加分號標識結束。view

相關文章
相關標籤/搜索