インデックスが 0 から始まる文字列(Delphi)
Delphi コンパイラ指令のリスト:インデックス への移動
種類 |
スイッチ |
構文 |
{$ZEROBASEDSTRINGS ON} または {$ZEROBASEDSTRINGS OFF} |
デフォルト |
Delphi モバイル コンパイラの場合は {$ZEROBASEDSTRINGS ON} |
スコープ |
ローカル |
説明
{$ZEROBASEDSTRINGS} は、文字列型にローカルに使用されるインデックス付けを以下のように制御します。
- {$ZEROBASEDSTRINGS OFF} は Delphi デスクトップ コンパイラ(DCC32、DCC64、DCCOSX、DCCLINUX64)の場合のデフォルトで、文字列のインデックスは 1 から始まります。
- {$ZEROBASEDSTRINGS ON} は Delphi モバイル コンパイラ(DCCIOSARM、DCCIOS32)の場合のデフォルトで、文字列のインデックスは 0 から始まります。
-
- 注意: {$ZEROBASEDSTRINGS} を使用すると、ローカルの文字列インデックス方式を変更できます。 たとえば、モバイル プラットフォーム用 Delphi アプリケーションで {$ZEROBASEDSTRINGS OFF} を定義すると、文字列のインデックス方式を 1 から始まる方式に変更できます。
たとえば、文字列を直接編集している箇所が単独で存在し、今はその部分を修正できないという場合には、{$ZEROBASEDSTRINGS} が役に立ちます。
ただし、モバイル コンパイラと Delphi モバイルの RTL は、デフォルトではインデックスが 0 始まりの文字列を使用しているため、RTL をモバイル プラットフォームのための Delphi アプリケーションで使用する際には、0 始まりの文字列を使用する必要があります。
ごく一部ではない広い範囲のモバイル コードでは {$ZEROBASEDSTRINGS} を定義しないでください。 モバイル プラットフォームのモジュールやアプリケーション全体に適用した場合は、予測できない結果になるでしょう。
- 注意: {$ZEROBASEDSTRINGS} を使用すると、ローカルの文字列インデックス方式を変更できます。 たとえば、モバイル プラットフォーム用 Delphi アプリケーションで {$ZEROBASEDSTRINGS OFF} を定義すると、文字列のインデックス方式を 1 から始まる方式に変更できます。