要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
最近在新公司的代碼中發現到處用到do ... while ,google了一下,發現Stack Overflow上早有很多討論,總結了一下討論,加上自己的理解,do ... while 的價值主要體現在: . 增加代碼的適應性 下面的宏定義沒有使用do ... while 這樣宏定義,單獨調用不會出現問題,例如: 宏擴展后變成: foo x bar x 這樣調用FOO沒有任何問題,但是FOO x ...
2015-12-28 17:00 2 6324 推薦指數:
要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
1. 利用define來定義 數值宏常量 #define 宏定義是個演技非常高超的替身演員,但也會經常耍大牌的,所以我們用它要慎之又慎。它可以出現在代碼的任何地方,從本行宏定義開始,以后的代碼就就都認識這個宏了;也可以把任何東西定義成宏。因為編譯器會在預編譯的時候用真身替換替身,而在 ...
在linux內核代碼中,經常看到do...while(0)的宏,do...while(0)有很多作用,下面舉出幾個: 1、避免goto語句: 通常,如果一個函數開始要分配一些資源,然后如果在中途遇到錯誤則要退出函數,當然,退出前要釋放資源,我們的代碼 ...
今天為大家分享一篇C語言#define拼接宏定義實現方式,具有很好的參考價值,希望對大家有所幫助。 使用場合:拼接兩個宏,一個是傳入的宏。 遇到問題:普通的拼接宏定義,對於“傳入的宏”不會被替換,反而原封不動的接了上去。 解決方法:經過試驗以及網上查閱,以下方法即可以解決上述問題 ...
/archive/2012/03/30/2424844.html 單井號就是將后面的 宏參數 進行字符串操作, ...
1. 利用define來定義 數值宏常量 #define 宏定義是個演技非常高超的替身演員,但也會經常耍大牌的,所以我們用它要慎之又慎。它可以出現在代碼的任何地方,從本行宏定義開始,以后的代碼就就都認識這個宏了;也可以把任何東西定義成宏。因為編譯器會在預編譯的時候用真身替換替身,而在 ...
如果你是一名C程序員,你肯定很熟悉宏,它們非常強大,如果正確使用可以讓你的工作事半功倍。然而,如果你在定義宏時很隨意沒有認真檢查,那么它們可能使你發狂,浪費N多時間。在很多的C程序中,你可能會看到許多看起來不是那么直接的較特殊的宏定義。下面就是一個例子: #define ...