MISRA_C规范学习笔记_2004_Rule_8.1

Grey

全部学习汇总: ​​GitHub - GreyZhang/misra_c_hacking: MISRA C, I'm coming! Happy hacking!​

MISRA_C规范学习笔记_2004_Rule_8.1

规则摘录与分析

1124_MISRA_C规范学习笔记_2004_Rule_8.1_misra c


  • 原型的使用使编译器能够检查函数定义和调用的完整性。
  • 解读其实是简单的,第一句看明白了基本问题就不大了。

小结


  • 首先值得一说的是,我之前接触的很多工程师这一条规则上做得不是很到位。有时候,编译器提示了调用与原型不一致的时候也不会去关注。有点类似程序界的调侃说法:只关注错误不关注警告。
  • 近段时间我也在看AUTOSAR的文档,其实AUTOSAR的文档中可以看出在代码文件的管理方面就已经避开了这个问题。它明确要求了,C文件必须包含声明的头文件以用于做一致性检查。
  • 关于这一条,通过规则性的要求其实很容易遵循,避免相应的问题。


  1. 函数在模块相关头文件声明,且仅在此声明,在相关模块的c文件定义。
  2. 定义的c文件需要包含模块头文件。
  3. 调用函数的时候,必须先包含其声明的头文件。

  • 通过上面几点,大面上的问题应该可以避免。如果有诸如静态函数或者内联函数之类的,做其他的考虑即可。但是静态的,应该也要有一个明确的声明,放在C文件开始就好了。