E2119 構造体フィールドの識別子が必要です (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

インラインアセンブラが「.」の右側に識別子を認識しましたが,それは「.」の左側にあるレコードのフィールドではありませんでした。よくあるエラー(しかし見つけるのが難しいエラー)は,「ch」というフィールドがあるレコードを使った場合です。インラインアセンブラは常に ch をレジスタ名として解釈します。


program Produce;

  type
    Data = record
      x : Integer;
    end;

  procedure AssemblerExample(d : Data; y : Char);
  asm
    mov  eax, d.y
  end;

begin
end.

{ このコードでは,インラインアセンブラは y を有効な識別子として認識したが,y を d 型のメンバーとしては認識しなかった }


program Solve;

  type
    Data = record
      x : Integer;
    end;

  procedure AssemblerExample(d : Data; y : Char);
  asm
    mov  eax, d.x
  end;

begin
end.

{ 正しい変数名を指定すればエラーはなくなる }