文件名称:语言扩展-中国县域统计年鉴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
<