小编Pra*_*ngh的帖子

MISRA 2012规则14.2

我有一个与MISRA 2012规则14.2有关的问题"for for循环应该是格式良好的"

考虑以下示例代码:

int foo (int *ptr)
{
    (*ptr)--;
     return *ptr;
}

void main()
{
    int a =20;
    int i;
    for (i=0; i< foo(&a) ; i++)
    {
         /*
         <loop body>
         */       
    }
}
Run Code Online (Sandbox Code Playgroud)

for (i=0; i< foo(&a) ; i++)我在这里获得MISRA违规,14.2.问题是当我们在如图所示的函数中修改循环条件(i <foo(&a))中存在的变量(a)时.是有效违规吗?

它只是一个示例案例,对于14.2,请不要关注上面示例代码中的无限循环.


14.2规则: 第二个子句
- 应该是一个没有持久性副作用的表达式,并且
- 应该使用循环计数器和可选的循环控制标志,并且
- 不要使用在for循环体中修改的任何其他对象.

示例: -

 bool_t flag = false;
    for ( int16_t i = 0; ( i < 5 ) && !flag; i++ )
    {
    if ( C )
    {
    flag = …
Run Code Online (Sandbox Code Playgroud)

c static-analysis misra

3
推荐指数
1
解决办法
966
查看次数

更改 gitlab runner 的克隆目录

目前我在多个工具中面临路径问题,因为 gitlab clone dir 的路径长度,使用 gitlab runner。 当前目录结构:C:\gitLab\builds\576aef34\0\root\TEST

有什么办法可以缩短这个路径,比如:C:\gitLab\builds\TEST

gitlab gitlab-ci gitlab-ci-runner

1
推荐指数
1
解决办法
2624
查看次数

标签 统计

c ×1

gitlab ×1

gitlab-ci ×1

gitlab-ci-runner ×1

misra ×1

static-analysis ×1