2月 13, 2011

c 語言中 #define 與 Preprocessor

#define 的用途:

1. 定義巨集 #define sqr(x) (x)*(x)
2. 定義符號 symbol 例如: #define PI 3.14

所以 #define PI 3.14 與 float PI=3.14 有何不同?

ans:

使用 define 只是定義了一個 symbol 不佔memory 空間
在編譯前,預先處理器(Preprocessor) 先進行處理,將程式碼中出現的 PI
代換成 3.14 後再丟給編譯器進行 compile。

而使用 float 宣告的變數,會佔記憶體空間(4bytes) 其值為 3.14

--

那麼談談 Preprocessor 的用途吧

1. 引入 inclusion file → #include
2. 處理 conditional compilation → #ifdef / #if / #endif ...
3. macro 代換成 code → #define PI 3.14

沒有留言:

張貼留言