4
我們如何檢查是否定義了宏,以及是否定義了宏定義的值? 我試過做gdb,但是我們看不到GDB中的宏,因爲MACRO在預編譯時被替換。檢查是否定義宏
GCC編譯器有什麼方法可以看到編譯器在創建目標文件(* .o)之前創建的預編譯文件嗎?
我們如何檢查是否定義了宏,以及是否定義了宏定義的值? 我試過做gdb,但是我們看不到GDB中的宏,因爲MACRO在預編譯時被替換。檢查是否定義宏
GCC編譯器有什麼方法可以看到編譯器在創建目標文件(* .o)之前創建的預編譯文件嗎?
您可以使用gcc的-E
標誌來獲得預處理輸出。此輸出將包含擴展的宏而不是其名稱。你可以找到more information here。
在C源文件中,您可以使用#ifdef
宏來檢查宏是否已定義。
#include <stdio.h>
#ifdef MY_MACRO
char msg[] = "My macro is defined";
#else
char msg[] = "My macro is NOT defined";
#endif
int main(int argc, char **argv) {
printf("%s\n", msg);
return 0;
}