在项目下载到目标系统之前,静态分析功能检查项目的源代码是否与某些编码指令存在偏差。这沿用了 lint 分析工具的基本理念。
确保在对话框中定义了所需的规则集。
如果与规则存在偏差,则会以类别为SA
<编号>的形式。
借助 pragma 指令,您可以将代码的某些部分排除在检查之外。
前提条件:必须在
中激活规则。{analysis ...}
您可以使用 pragma {analysis ...}
来禁用后续代码行的特定编码规则。为此,将其置于:相关代码上方的行中(禁用),以及相关代码下方的行中(重新启用);要禁用的规则的编号在指定时其前面都必须添加减号 (–
)(对于禁用),或者添加加号 (+
)(对于重新启用)。根据规则,pragma 可以用在编程对象的声明部分中或实现部分中。
语法
{analysis <sign><rule number>|,<other combinations of signs and rules, comma-separated>}
-<rule number>
: 禁用规则 SA<规则编号>。
+<rule number>
: 激活规则 SA<规则编号>。
示例
为两行禁用了规则 24(这就意味着,这里不必写入(比如)nTest:=DINT#99
),之后此规则被重新启用。
{analysis -24}
nTest := 99;
iVar := INT#2;
{analysis +24}
指定多个规则:
{analysis -10, -24, -18}
{attribute 'analysis' := '...'}
您可以在声明部分中使用属性 {attribute 'analysis' := '<sign><rule number>'}
来为整个编程对象启用或禁用特定规则:
语法
{attribute 'analysis' := '<sign><rule number>|,<further rule numbers separated by commas>'}
示例
为整个结构禁用规则 SA0033 和 SA0031:
{attribute 'analysis' := '-33, -31'}
TYPE My_Structure :
STRUCT
iLocal : INT;
uiLocal : UINT;
udiLocal : UDINT;
END_STRUCT
END_TYPE
为数组禁用规则 SA0100:
{attribute 'analysis' := '-100'}
big: ARRAY[1..10000] OF DWORD;