精華區beta Programming 關於我們 聯絡資訊
※ 引述《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"的狂狷不馴;屬於年少的輕狂色彩