前置處理是 C 語言的特色之一,很容易與自定函數搞混,下列說明作一些簡單區分:

前置處理自訂函數
前置處理程式碼只是替換工作,不被編譯。(被替換完成的結果才被編譯) 函數程式碼只被編譯。
前置處理程式碼在編譯前就會做好替換工作,編譯時不會看到前置處理程式碼。 函數程式碼只有在編譯時才處理。

前置處理換個白一點講法就是替換處理,替換的方式有下列幾種:
功 能 前置處理器之敘述
替換成檔案的內容 #include
字串的置換/巨集定義 #define / #undef
條件編譯 #if ... #elif ... #else ... #endif
#ifdef (#ifndef) ... #else ... #endif

使用巨集常見錯誤