Skip to main content

SA0061:指针上的异常操作

检测操作一种类型的变量 POINTER TO 哪些不是 = (平等), <> (不等式), + (加法),或 ADR.

CODESYS, 指针算术一般是允许的,也可以适当使用。因此,将指针与整数值相加被认为是对指针的常见操作。这使得可以使用指针来处理可变长度的数组。使用 SA0061 报告所有其他(不寻常的)指针操作。

重要性:高

PLCopen 规则:E2 / E3

72. 例子
PROGRAM PLC_PRG
VAR
    piTemp : POINTER TO INT;
    iTemp : INT;
END_VAR
iTemp := iTemp + INT#1;
piTemp := ADR(iTemp);
piTemp := piTemp * DWORD#5;   // SA0061
piTemp := piTemp / DWORD#2;   // SA0061
piTemp := piTemp MOD DWORD#3; // SA0061
piTemp := piTemp + DWORD#1;
piTemp := piTemp - DWORD#1;   // SA0061

输出在 留言 看法:

  • sa_icon_message.png SA0061:指针的异常操作