Skip to main content

SA0019:隐式指针转换

检测隐式生成的指针转换

理由:在 CODESYS,指针不是严格类型的,它们可以以任何方式相互分配。它经常被使用,因此编译器不会报告。但是,它也可能导致未经授权的意外访问。例如,如果您分配类型 POINTER TO DWORD 指向类型为的指针 POINTER TO BYTE,可能会以不想要的方式覆盖内存。

因此,请务必检查此规则,仅在您故意要访问不同类型的值时才屏蔽该消息。

与之之间的转换 POINTER TO BYTE SA0019 规则未检查数据类型。他们总是被允许的。

使用不同的消息报告隐式数据类型转换。

重要性:高

PLCOpen 规则:CP25

例外: BOOL <-> BIT

54. 示例
PROGRAM PLC_PRG
VAR
    pInt : POINTER TO INT;
    byteVar : BYTE;
END_VAR
pInt := ADR(byteVar);

中的输出 消息 视图:

  • sa_icon_message.png SA0019:从指针到 “指针到字节” 的隐式转换到指向 “指向整数指针” 的指针