#include
#define test
//#開頭 以if開頭 必須以endif結尾
#ifdef test
void
print_message()
#else
void print_message
#endif
intmain
(int argc,
char
const
*ar**)
結果:
gcc -e con.c //用於檢視編譯過程
//取消已經定義的巨集
#undef test
//#開頭 以if開頭 必須以endif結尾
//#ifdef if defined如果已經定義
//#ifndef if not defined如果尚未定義
#ifdef test
void
print_message()
#else
void print_message
#endif
//這裡是條件起始,必須加上條件,否則會導致預編譯錯誤,其實是語法錯誤
#if 1
int a=
100;
//如果前乙個巨集不成立,才會處理下面的,此時如果沒有規定成立條件,會導致報錯
#elif
//else if 需要加條件
int a=
1000
;#else
int a =
10000
;#endif
//一般來說,對於**當中尚未開發完成的**,而又可能會導致一些不可預見的問題
//但是又不想讓程式無法執行,可以加上這樣乙個巨集定義,代表**仍需處理
#warning 這裡會出現什麼問題
//之戒丟擲乙個預編譯錯誤
#error 這裡會出現錯誤嗎?
//這個指令功能非常強大
//這個叫非致命性警告,只有新增了 gcc -wall c.c才會編譯時顯示出來,-wall表示warning all所有的警告
#pragma warning("這是什麼?")
//顯示乙個資訊
#pragma message("這是一段資訊")
//記憶體對齊方式,括號內指定記憶體對齊的位元組數,用在結構體會多一點
#pragma pack(3)
intmain
(int argc,
char
const
*ar**)
C語言 預處理命令
我們可以在c源程式中插入傳給編譯程式的各中指令,這些指令被稱為預處理器指令,它們擴充了程式設計的環境。現把常用的預處理命令總結如下 1.預處理程式 按照ansi標準的定義,預處理程式應該處理以下指令 if ifdef ifndef else elif endif define undef line ...
C語言 預處理命令
一 巨集定義 在 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集定義中的字串去代換,這稱為 巨集代換 或 巨集展開 巨集定義是由源程式中的巨集定義命令完成的。巨集代換是由預處理程式自動完成的。在 ...
C語言預處理命令
以 開頭的預處理命令。如 include,巨集定義命令 define pi 3.1415926等。在源程式中這些命令都放在函式之外,而且一般放在原始檔前面,它們稱為預處理部分。無參巨集定義 無參巨集的巨集名後不帶引數。其定義的一般形式為 define 識別符號 字串 其中的 表示這是一條預處理命令,...