7
これは単なる実験的な実験です。
私はグローバル(静的)バールが悪いことを知っていますし、どのような場合でもスコープを破ることは悪い考えです。どのように私はそれがで宣言されています関数のスコープ外からCanIBeChanged
の値を変更することができ、有効になっている書き込み可能な定数を仮定し宣言されたルーチンからローカルの型付き定数を変更する方法はありますか?
function IsItChanged: integer;
const
CanIBeChanged: integer = 0;
begin
Result:= CanIBeChanged;
end;
:
は、次のコードを考えてみましょうか?
PSいいえこのコードを使用するつもりはありませんが、これは単なる質問です。
ローカル書き込み可能なconstの有効期間はどのくらいですか?コードがメソッドを離れるまで(通常のローカル変数のように)、それとも共有されるのですか?最初のケースでは、コードに未定義の動作があります。 – CodesInChaos
@CodeInChaosそれは本当に奇妙な構造です。彼らは本当にグローバル変数です。静的記憶域を持つCのローカルに相当します。 –
私はそのようなことを漠然と思い出していましたが、もはやこれは確かではありませんでした。 – CodesInChaos