MISRA C:2012 Dir­-4.3 3006解析

2025-04-10 10:36:40

MISRA-C:2012 规则适用于消息3006:Dir-4.3(必要)汇编语言应该被封装并隔离

规则

1、规则与等级对应关系(QAC)

MISRA C:2012 Dir­-4.3 3006解析

2、3006 This function contains a mixture of in-line assembler statements and C statements.在C语句的文本中,嵌入了汇编代码。当函数定义中同时有汇编代码和可执行C语句时,除非汇编代码被封装在宏中,否则将会生成消息3006。

官方示例

1、#define ASM asm { ... }extern int sia;extern int sib;extern void foo1(void) /* No Message */{ int x; ASM; asm ( Some assembler code ); return;}

MISRA C:2012 Dir­-4.3 3006解析

2、extern void foo2(void) /* Message 3006 */{ int x = 100 ; asm( Some assem芟鲠阻缒bler code ); return;}extern void foo3(void) /* Message 3006 */{ char *msg = "hello"; asm { Some assembler code } return;}

MISRA C:2012 Dir­-4.3 3006解析

3、extern void foo4(void) /* Message 3006 */{ __asm { Some assembler code } sia = sib; return;}extern void foo5(void) /* Message 3006 */{ asm ( Some assembler code ); sia += sib; return;}

MISRA C:2012 Dir­-4.3 3006解析

编程规范修改举例

1、NO

MISRA C:2012 Dir­-4.3 3006解析

2、YES

MISRA C:2012 Dir­-4.3 3006解析
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢