要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
寫好C語言,漂亮的宏定義很重要,使用宏定義可以防止出錯,提高可移植性,可讀性,方便性等等。 下面列舉一些成熟軟件中常用的宏定義: 防止一個頭文件被重復包含 重新定義一些類型,防止由於各種平台和編譯器的不同,而產生的類型字節數差異,方便移植。 得到指定地址上的一個字節或字 求最大值和最小值 得到一個field在結構體 struct 中的偏移量 得到一個結構體中field所占用的字節數 按照LSB格式 ...
2021-07-05 15:30 0 162 推薦指數:
要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
...
忘了啥時候記的筆記了 @ 目錄 宏定義 1.不帶參數的宏定義: 2.帶參數的宏定義: C語言宏定義技巧(常用宏定義) 1,防止一個頭文件被重復包含 ...
1.防止一個頭文件被重復包含: #ifndef COMDEF_H #define COMDEF_H //頭文件內容 #endif 當你所建的工程有多個源文件組成時,很可能會在多個文件里頭包含了同一個頭文件,如果借用上面的宏定義就能夠避免同一個頭文件被重復包含時進行多次編譯。因為當它編譯 ...
1. 利用define來定義 數值宏常量 #define 宏定義是個演技非常高超的替身演員,但也會經常耍大牌的,所以我們用它要慎之又慎。它可以出現在代碼的任何地方,從本行宏定義開始,以后的代碼就就都認識這個宏了;也可以把任何東西定義成宏。因為編譯器會在預編譯的時候用真身替換替身,而在 ...
注意區分宏定義函數和普通函數定義的區別: 宏定義中表達式的參數要加括號,否則可能會出錯(運算的優先級): 同理計算的優先級問題還可以出現的main()函數中表達式中: 所以一般是不建議利用宏定義來表示太多的計算表達式,很可能會出現表達式計算錯誤。 ...
下面列舉了一些常見的宏寫法: 我們使用#把宏參數變為一個字符串,用##把兩個宏參數貼合在一起。 當宏參數是另一個宏的時候需要注意的是凡宏定義里有用''#''或''##''的地方宏參數是不會再展開。 Linux內核中的一些宏定義(前面 ...
#ifndef MacroDefinition_h #define MacroDefinition_h //----------- ...