语言扩展-中国县域统计年鉴2016(乡镇卷)

时间:2024-06-23 12:01:05
【文件属性】:

文件名称:语言扩展-中国县域统计年鉴2016(乡镇卷)

文件大小:457KB

文件格式:PDF

更新时间:2024-06-23 12:01:05

MISRA

6.2 语言扩展 规则 2.1(强制): 汇编语言应该被封装并隔离。 [未指定 11] 在需要使用汇编指令的地方,建议以如下方式封装并隔离这些指令:(a) 汇编函数、(b) C 函数、(c) 宏。 出于效率的考虑,有时必须要嵌入一些简单的汇编指令,如开关中断。如果不管出于什 么原因需要这样做,那么 好使用宏来完成。 需要注意的是,内嵌的汇编语言的使用是对标准 C 的扩展,因此也需要提出对规则 1.1 的背离。 #define NOP asm (“ NOP”); 规则 2.2(强制): 源代码应该使用 /*…*/ 类型的注释。 这排除了如 // 这样 C99 类型的注释和 C++类型的注释,因为它在 C90 中是不允许的。许 多编译器支持 // 类型的注释以做为对 C90 的扩展。预处理指令(如#define)中 // 的使用可 以改变,/*…*/和//的混合使用也是不一致的。这不仅是类型问题,因为不同的编译器(在 C99 之前)可能会有不同的行为。 规则 2.3(强制): 字符序列 /* 不应出现在注释中。 C 不支持注释的嵌套,尽管一些编译器支持它以做为语言扩展。一段注释以/*开头,直到 第一个*/为止,在这当中出现的任何/*都违反了本规则。考虑如下代码段: /* some comment, end comment marker accidentally omitted <> Perform_Critical_Safety_Function (X); /* this comment is not compliant */ 在检查包含函数调用的页中,假设它是可执行代码。 因为可能会省略掉注释的结束标记,那么对安全关键函数的调用将不会被执行。 规则 2.4(建议): 代码段不应被“注释掉”(comment out)。 当源代码段不需要被编译时,应该使用条件编译来完成(如带有注释的#if 或#ifdef 结构)。 为这种目的使用注释的开始和结束标记是危险的,因为 C 不支持嵌套的注释,而且已经存在 于代码段中的任何注释将影响执行的结果。 6.3 文档 规则 3.1(强制): 所有实现定义(implementation-defined)的行为的使用都应该文档化。 本规则要求,任何对实现定义的行为的依赖——这些行为在其他规则中没有特别说明的 ——都应该写成文档,例如对编译器文档的参考。如果一个特定的行为在其他规则中被显式 说明了,那么只有那项规则在其需要时给出背离。完整问题的描述详见 ISO 9899:1990 附录 G [2]。 规则 3.2(强制): 字符集和相应的编码应该文档化。 例如,ISO 10646 [22]定义了字符集映射到数字值的国际标准。出于可移植性的考虑,字 符常量和字符串只能包含映射到已经文档化的子集中的字符。


网友评论