LoginSignup
0
0

More than 3 years have passed since last update.

<3> プログラムヘッダと宣言部 (標準 Pascal 範囲内での Delphi 入門)〔裏〕

Last updated at Posted at 2021-02-16

3. プログラムヘッダと宣言部

3.1. プログラムヘッダ (Program heading )

3.2. ラベル宣言部 (Label declaration part)

・識別子が利用可能なラベルの由来

Delphi の場合にはラベルに識別子が使えます。

この拡張は BLS Pascal (Turbo Pascal の前身) 由来のようです。

See also:

3.3. 定数定義部 (Constant declaration part)

(3.3.1.) 定数式 (Constant Expressions)

(3.3.2.) 型付きの定数 (Typed Constants)

・書き込み可能な型付き定数について

型付きの定数はDelphi 5 までは書き込み可能でした。実質的には初期化済み変数という事になります。
image.png
また、書き込み可能な型付き定数静的変数として振舞います。

StaticVar.pas
program StaticVar;
{$APPTYPE CONSOLE}

{$J+} // Writable Const

var
  i: Integer;

procedure A;
const
  foo: Integer = 0;
begin
  Inc(foo);
  writeln(foo);
end;

begin
  for i := 1 to 10 do
    A();
end.

このコードの実行結果は以下の通りです。

1
2
3
4
5
6
7
8
9
10

型付きの定数の挙動は Delphi 2 から {$J} コンパイラ指令で制御できるようになり、Delphi 6 において {$J-} (書き込み不可能な型付き定数) がデフォルトとなりました。

つまり、Turbo Pascal や Delphi 1 では型付きの定数は常に書き込み可能でした。Delphi 2 のマニュアルには {$J-} がデフォルトであるかのように書かれていますが、実際には {$J+} がデフォルトです。

See also:

3.4. 型定義部 (Type definition part)

3.5. 変数宣言部 (Variable declaration part)

(3.5.1.) プログラムヘッダのパラメータ

(3.5.2) インライン変数宣言 (Inline Variable Declaration)

3.6. 手続き・関数宣言部 (Procedure and Function declaration part)

3.7. 識別子とラベルの有効範囲

索引

:ramen: [ ← 2. データの概念: 単純型〔裏〕 ] [ ↑ 目次へ ] [ → 4. 動作の概念〔裏〕 ]

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0