SA0028:重叠的内存区域
检测两个或多个变量保留相同内存的代码行。
理由:当两个变量保留相同的内存时,代码可能会出现意外的结果。应不惜一切代价避免这种情况。如果您无法避免在不同的解释中使用某个值(例如,一次作为 DINT
还有一次作为 REAL
),那么你应该定义一个 UNION
。您还可以使用指针访问不同类型的值,而无需转换该值。
重要性:高
例 40. 例子
PROGRAM PLC_PRG VAR iVvar1 AT %QB21: INT; dwVar2 AT %QD5: DWORD; END_VAR
输出在 留言 看法:
以下变量访问同一内存:
SA0028:iVar1 AT %QB21
SA0028:dwVar2 AT %QD5
有关更多信息,请参阅: