Skip to main content

编译器警告 C0269

信息:<pointer dereferencing> 指向的实例将重新初始化以进行虚拟函数调用。确保 <pointer dereferencing> 不指向从 <base 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 派生的类型。