主要内容

AUTOSAR C++14 Rule A6-6-1

The goto statement shall not be used

描述

规则定义

The goto statement shall not be used.

理由

不加限制地使用 goto 语句会增加程序逻辑的复杂度,使代码难以理解。此外,goto 语句可能会引入内存泄漏或错误释放资源。

Polyspace 实现

当您使用 goto 语句时,Polyspace 会报告违规。

故障排除

如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示

示例

全部展开

每当这段代码使用 goto 语句时,Polyspace 都会报告违规。

void foo(void)
{
    int i = 0, result = 0;

label1:
    for (i; i < 5; i++) {
        if (i > 2) goto label2;     // Non-compliant
    }

label2: {
        result++;
        goto label1;                // Non-compliant
    }
}

检查信息

组:语句
类别:必需、自动

版本历史记录

在 R2019a 中推出