MISRA C指导指南解读系列10(MISRA C规则114-127)

 

2.1.            标准库

114.保留字和标准库函数不能重新定义或取消定义(R)

       C语言中存在一些保留标识符和函数名,在应用软件中,不能随意重新定义或者取消这些定义。例如在C语言中,存在一些重要的宏和变量:__LINE____FILE____FILE____DATA____TIME____STDC__errno等。

#define __LINE__ 12 /* 与规则114冲突 */

 

#define break 1     /* 与规则114冲突 */

115.标准包名字不能被重新使用(R)

      

116.产品代码使用的所有的包应该遵循"MISRA Guidelines for the use of the C language in vehicle based software"的规定,并且遵循于相应的有效性确认(R

       117.传给包函数的值应该进行有效性检查(R

       118.不能使用动态堆内存分配(R

              这条规则要避免callocmallocreallocfree函数的使用。

       119.错误指示符errno不能被使用(R

              例如:

              #include <errno.h>

              void myfunc(void) {

                     errno = 0; /*与规则119冲突*/

}

       120<stddef.h>包中的宏offsetof不能被使用(R

       121<local.h>setlocal函数不能被使用(R             

       122setjmp宏和longjmp函数不能使用(R

       123<signal.h>中的信号处理操作不能使用(R

       124<stdio.h>输入输出包在产品代码中不能使用(R

       125<stdlib.h>包中的atofatoi,和atol不能使用(R

       126<stdlib.h>包中的abortexitgetenv,和system不能使用(R

       127<time.h>包中的时间处理函数

你可能感兴趣的:(c,File,System,语言,产品)