MISRA-C编码标准解读:Rule 1.1至Rule 1.5

一、MISRA-C是什么?

简而言之,MISRA-C是一种c语言编程规范,在笔者所在的汽车领域,嵌入式领域十分普及。其旨在提高代码可读性、可靠性和可移植性等。

以下主要记录MISRC-A 2004版中的6.1部分的内容。

二、环境

1.规则1.1(必须)

所有代码必须符合ISO/IEC 9899:1990“编程语言 — C”标准,由ISO/IEC 9899/COR1:1995、ISO/IEC 9899/AMD1:1995和ISO/IEC 9899/COR2:1996修订和更正。

#include <stdio.h>
int main(void){
    printf("Hello,World\n");
    return 0;
}

2.规则1.2(必须)

不得依赖未定义或未指定的行为。 此规则要求避免对未定义和未指定行为的任何依赖,除非其他规则明确涵盖了特定行为。当特定行为在另一条规则中明确涵盖时,只有需要偏离该特定规则。

错误示例:
int x;
printf("%d\n",x);
正确示例:
int x = 0;
printf("%d\n",x);

3.规则1.3(必须)

仅当存在对象代码的通用定义接口标准时,才可以使用多个编译器和语言。如果要在C之外的语言中实现一个模块,或者在不同的C编译器上编译一个模块,那么必须确保该模块能够与其他模块正确集成。

4.规则1.4(必须)

编译器/链接器应该被检查以确保支持外部标识符的31个字符的显著性和区分大小写。

/* 符合规则的标识符*/

void function_name_with_31_characters(void) {}  /*遵守命名约定有助于避免冲突*/

#define MY_CONSTANT_NAME 123

5.规则1.5(建议)

浮点实现应符合定义的浮点标准。浮点算术有一系列与之相关的问题,可以通过使用符合公认标准的实现来克服,如ANSI/IEEE Std 754。


总结

在活跃的汽车领域中,不同开发人员的开发习惯不尽相同。良好的开发习惯不仅让自己看自己开发的代码赏心悦目,也能更好地与同事协同。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值