Skip to main content

コンパイラ警告 C0269

メッセージ : <ポインタ再参照> が指すインスタンスは、仮想関数呼び出しのために再初期化されます。<ポインタ再参照> が <ベースFB> から派生した型を指していないことを確認してください。

考えられるエラーの原因 : 派生関数ブロックのアドレスは、基本関数ブロックのアドレスとして使用されます。

463. 警告の例
FUNCTION_BLOCK FBBase
...

FUNCTION_BLOCK FBDerived EXTENDS FBBase
...

FUNCTION_BLOCK FB EXTENDS Base_FB
...
PROGRAM PLC_PRG
VAR
      pinst : POINTER TO FBBase;
      inst2_2 : FBDerived;
END_VAR
pinst := ADR(inst2_2);
pinst^ := inst2_2;

ポインタの逆参照により次の警告が生成されます。

メッセージ:

C0269 : pinst^ が指すインスタンスは、仮想関数呼び出しのために再初期化されます。pinst^ が FBBase から派生した型を指していないことを確認してください。



: