SA0007:常量上的地址运算符
检测操作员所在的代码行 ADR
应用于一个常数
理由:使用指向常量变量的指针会覆盖 CONSTANT
变量的属性。可以通过指针更改变量,而无需编译器发出任何通知。
例外:在极少数情况下,将指向常量的指针传递给函数可能很有用。但是,您必须确保此函数不会更改传输的值。尽可能使用 VAR_IN_OUT CONSTANT
.
重要性:高
提示
当。。。的时候 替换常量 选项被选中 编译器选项 在项目设置中,标量常量(整数、 BOOL
, REAL
)并发出编译错误。 (常量字符串、结构体和数组始终有一个地址。)
例 19. 例子
PROGRAM PLC_PRG VAR CONSTANT c_iValue : INT := INT#15; END_VAR VAR poiValue : POINTER TO INT; END_VAR
poiValue := ADR(c_iValue); // SA0007
输出在 留言 看法:
SA0007:常量变量“c_iValue”的地址