※ 引述《cixooo.bbs@bbs.ntit.edu.tw (擎羊嘯天)》之銘言:
> #define PI 3.14
> const float PI=3.14
> 對我們來說都是將PI設定成常數
> 那對c編譯器來說有什麼不一樣呢?
#define是preprocessor
也就是在編譯器之上(前)的前置處理
上面的例子 當遇上程式碼本文中有 PI 時,會先將它轉成 3.14
然後才進行編譯
所以對於編譯器來說
#define P I3.14
a=PI;
跟
a=3.14
兩者產生的執行檔是一模一樣的
runtime時 記憶體中並不會生個叫PI的變數 紀錄3.14的值
但是使用const的方式就會生出變數了
--
小弟對C的研究不深
觀念不對的話 還請各位大大不吝指教 :D
--
ー久遠に臥したるもの死する事なく
That is not dead which can eternal lie,
怪異なる永劫の内には死すら終焉を迎えんー
And with strange aeons even death may die.
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:219-81-220-179.static.tfn.net.tw
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎