#pragma message("this is message") #pragma message只能打印字符串,如果想打印任何宏定義可使用: #define PRINT_MACRO_HELPER(x) #x #define PRINT_MACRO(x) #x ...
通過 D選項可以控制編譯器在編譯時的宏定義值,測試例程如下: 顯然這里面定義了一個宏CCC。 如果使用編譯命令: 那么編譯並執行以后,輸出的結果顯然是 。 如果使用編譯指令: 則輸出的結果就是 了。 ...
2021-05-25 23:00 0 220 推薦指數:
#pragma message("this is message") #pragma message只能打印字符串,如果想打印任何宏定義可使用: #define PRINT_MACRO_HELPER(x) #x #define PRINT_MACRO(x) #x ...
筆記整理: C語言帶參數宏定義 宏定義 宏定義的一般形式為:#define 宏名 字符串或者表達式預處理的工作就是替換,就是將宏名替換成相應的字符串與表達式。 宏定義字符串: 該示例中的語句int sum = 20 + N;,N被100代替了 宏定義 ...
忘了啥時候記的筆記了 @ 目錄 宏定義 1.不帶參數的宏定義: 2.帶參數的宏定義: C語言宏定義技巧(常用宏定義) 1,防止一個頭文件被重復包含 ...
要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
...
最近在新公司的代碼中發現到處用到do{...}while(0),google了一下,發現Stack Overflow上早有很多討論,總結了一下討論,加上自己的理解,do{...}while(0)的價值主要體現在: 1. 增加代碼的適應性 下面的宏定義沒有使用do{...}while ...
1. 利用define來定義 數值宏常量 #define 宏定義是個演技非常高超的替身演員,但也會經常耍大牌的,所以我們用它要慎之又慎。它可以出現在代碼的任何地方,從本行宏定義開始,以后的代碼就就都認識這個宏了;也可以把任何東西定義成宏。因為編譯器會在預編譯的時候用真身替換替身,而在 ...
注意區分宏定義函數和普通函數定義的區別: 宏定義中表達式的參數要加括號,否則可能會出錯(運算的優先級): 同理計算的優先級問題還可以出現的main()函數中表達式中: 所以一般是不建議利用宏定義來表示太多的計算表達式,很可能會出現表達式計算錯誤。 ...