检测对POINTER TO
类型变量的操作,这些操作不是=
(相等)、<>
(不等式)、+
(加法)或ADR
。
在CODESYS 中,一般允许使用指针运算,也可以适当使用指针运算。因此,将指针与整数值相加被认为是对指针的常见操作。这使得使用指针处理长度可变的数组成为可能。使用指针进行的所有其他(非正常)操作均以 SA0061 报告。
重要性:高
PLCopen 规则:E2 / E3
示例
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 --> SA0061: Unusual operation on pointer