要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
下面列舉了一些常見的宏寫法: 我們使用 把宏參數變為一個字符串,用 把兩個宏參數貼合在一起。 當宏參數是另一個宏的時候需要注意的是凡宏定義里有用 或 的地方宏參數是不會再展開。 Linux內核中的一些宏定義 前面list head文章中講過的就不說了,比如container of之類的 : 常用的宏: init,標記內核啟動時所用的初始化代碼,內核啟動完成后就不再使用。其所修飾的內容被放到.ini ...
2012-06-05 22:32 0 5654 推薦指數:
要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
...
在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個例子,比較兩個數或者表達式大小,首先我們把它寫成宏定義: #define MAX ...
忘了啥時候記的筆記了 @ 目錄 宏定義 1.不帶參數的宏定義: 2.帶參數的宏定義: C語言宏定義技巧(常用宏定義) 1,防止一個頭文件被重復包含 ...
1、Q_UNUSED 如果一個函數的有些參數沒有用到、某些變量只聲明不使用,但是又不想編譯器、編輯器報警報,就Q_UNUSED(name),其他沒有什么實際性作用。 2、Q_DISABLE_COPY 在類定義時使用,代表此類禁止被拷貝或賦值: 其實用作等效於: ...
#if 1#define DEBUGP(fmt, ...) printf("%s(%d): "fmt"\n", __func__, __LINE__, ##__VA_ARGS__)#else#define DEBUGP(fmt, ...)#endif 將宏的值轉換為字符串 #define ...
1. 利用define來定義 數值宏常量 #define 宏定義是個演技非常高超的替身演員,但也會經常耍大牌的,所以我們用它要慎之又慎。它可以出現在代碼的任何地方,從本行宏定義開始,以后的代碼就就都認識這個宏了;也可以把任何東西定義成宏。因為編譯器會在預編譯的時候用真身替換替身,而在 ...
注意區分宏定義函數和普通函數定義的區別: 宏定義中表達式的參數要加括號,否則可能會出錯(運算的優先級): 同理計算的優先級問題還可以出現的main()函數中表達式中: 所以一般是不建議利用宏定義來表示太多的計算表達式,很可能會出現表達式計算錯誤。 ...