1.#define 目標文字 目地文字

範例:
若某 c 程式碼如下:
#define prn1 printf("1\n")
int main(){
prn1;
return(0);
}

則經過前置處理時,變成
int main(){
printf("1\n");
return(0);
}

範例:
若某 c 程式碼如下:
#define MAX 100
int main(){
int x[MAX], i;
for(i=0; i<MAX; i++){
    x[i]=0;
}
return(0);
}

則經過前置處理時,變成
int main(){
int x[100], i;
for(i=0; i<100; i++){
    x[i]=0;
}
return(0);
}

此時已無前置處理指令,才進入編譯階段。


2. #undef 已定義之命名

#define X 2
int main(){
int a;
a=X;
#undef X //刪除之前 X 的定義
a=X; //此行會有錯誤,因為 X 已被刪除了
return(0);
}

則經過前置處理時,變成
int main(){
int a;
a=2;
a= ?? <--不知放什麼
return(0);
}