C 語言的前置處理(Preprocess)是在編譯階段之前,由前置處理器(Preprocessor)執行的一系列操作,主要功能包括巨集替換、檔案包含和條件編譯。 前置處理指令以井號(#)開頭,例如 #include 用於插入檔案內容,#define 用於定義宏,而 #ifdef、#ifndef、#endif 等則用於條件編譯,根據設定決定是否編譯某段程式碼。 最終,預處理器會將原始碼轉換成經過處理的文本,再交由編譯器進行後續的編譯工作
#include <stdio.h>
// 定義常數巨集
#define PI 3.1415926
#define GREETING "Hello, World!"
// 定義函式巨集(注意括號的使用)
#define SQUARE(x) ((x) * (x))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
// 條件編譯
#define DEBUG 1
int main() {
// 使用常數巨集
printf("PI 的值: %f\n", PI);
printf("%s\n", GREETING);
// 使用函式巨集
int x = 5;
printf("%d 的平方: %d\n", x, SQUARE(x));
printf("3和5 比較大的是: %d\n", MAX(3, 5));
// 條件編譯
#ifdef DEBUG
printf("[調試] 程式運行到 main 函式\n");
#endif
// 編譯器版本檢查
#if __STDC_VERSION__ >= 201112L
printf("使用 C11 標準\n");
#elif __STDC_VERSION__ >= 199901L
printf("使用 C99 標準\n");
#else
printf("使用 C89/C90 標準\n");
#endif
// 錯誤指令
// #error "這是手動觸發的錯誤"
return 0;
}