有關 Const 的問題… |
答題得分者是:anderslee
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
參考:
在錢達智先生有關編譯指令的文件中有說明:
const 在先前的 Pascal 版本中, 以
const VarName: DataType = const value;
定義的具型態常數的確是可以改的, 假如您希望它不被允許修改,
請將 Compiler directive 設為 {$J-}
不論是 {$J+} 或 {$J-}, 以const VarName = const value;
定義的常數(沒有加上型別宣告), 是一個真正的常數, 其他的程式
不可以改變其內容。
其實 {$J+} 時還有一個妙用, 那就是宣告出類似 C 語言 static
的變數, 換句話說, 產生了一個與 Application 相同生命週期的
變數。在這種情形下, 變數只在第一次使用時才會建立, 函數或程
序結束時, 該變數也不會消滅, 下一次再呼叫到這個函數或程序時
, 我們仍然可以參考到上次執行結束時的值。 --
Everything I say is a lie.
|
anderslee
初階會員 發表:2 回覆:32 積分:26 註冊:2002-06-03 發送簡訊給我 |
引言: 各位Delphi先進、高手們: 宣告成Const 的變數,是屬於常量變數,也就是不可以修改其數值。但是若宣告成 Const I : Integer = 10時即可修可其I的值,這是為什麼?Const 有兩種 (1) Const MaxNum = 10; 其實和程式語言無關, 程式中出現 MaxNum 編程就把 10 代入 (類似 Macro 的用法) 任何情況下 MaxNum 都不可放在 assignment 左方,i.e. MaxNum := 11; 不可!!! (2) Const MaxNum : Integer = 10; MaxNum 變成一個 Global Variable, 子程式進出入時仍會保留內容/數值。 Delphi 7 內定為 {$J-} 而 Delphi6 及以前則內定 {$J } 當{$J } 時 maxNum 和其他 Var 無異, $J- 時數值不能變更 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |