gcc 展開前置處理的技巧
編譯 C/C++ 程式前,編譯器會用 C 前置處理器 (cpp, C Preprocessor) 展開 #include
、#define
、#if …
等指令後的程式碼。gcc -E
作完前置處理就會停下來,不會繼續編譯,並可配合不同參數觀看展開的內容。
保留 define 內容
gcc -E -dM
可以保留 define 內容,方便查詢原始名稱。比方說 Linux 的 system call 的錯誤值會存在 errno
,是個數字。要查詢數字對到的意思,需要看 <errno.h>
…