检测临时变量(堆栈上)到非临时变量的地址分配
理由函数或方法的局部变量是在堆栈上创建的,它们只在函数或方法被处理时存在。如果指针在处理完方法或函数后指向这类变量,那么就可以使用该指针访问未定义的内存,或访问其他函数中的错误变量。应不惜一切代价避免出现这种情况。
重要性:高
示例
FUNCTION TempVarInFUNC : DWORD VAR uiTemp : UINT; END_VAR TempVarInFUNC := ADR(uiTemp); // SA0021 PROGRAM PLC_PRG VAR dwTest : DWORD; END_VAR dwTest := TempVarInFUNC(); --> SA0021: Transporting address of temporary variable to outer scope symbol