7
請注意,這只是一個思想實驗。
我知道全局(靜態)變量是不好的,在任何情況下,打破範圍都是一個壞主意。有沒有辦法改變一個局部類型的常量* *它在外部聲明的例程?
考慮下面的代碼:
function IsItChanged: integer;
const
CanIBeChanged: integer = 0;
begin
Result:= CanIBeChanged;
end;
假設寫常量已啓用,我怎麼可以從它在聲明的功能範圍之外的改變CanIBeChanged
價值?
PS不,我不打算永遠使用這個代碼,這只是一個出於興趣的問題。
什麼是本地可寫常量的生存期?直到代碼離開方法(如正常的局部變量),還是共享?在第一種情況下,您的代碼具有未定義的行爲。 – CodesInChaos 2012-03-11 14:08:02
@CodeInChaos這是一個真正奇怪的構造。他們真的是全球變數。等同於靜態存儲的C本地人。 – 2012-03-11 14:10:28
我隱約記得那樣的事情,但不知道了。 – CodesInChaos 2012-03-11 14:12:08