- 1、本文档共110页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.2(强制): 不能有对未定义行为或未指定行为的依赖性;1.3(强制): 多个编译器和/或语言只能在为语言/编译器/汇编器所适合的目标代码定义了通用接口标准时使用;1.4(强制): 编译器/链接器要确保31 个有效字符和大小写敏感能被外部标识符支持;;1.5(建议): 浮点应用应该适应于已定义的浮点标准;2.1汇编语言应该被封装并隔离。;;2.2源代码应该使用/*…*/ 类型的注释;C不支持注释的嵌套,尽管一些编译器支持它以做为语言扩展。一段注释以/*开头,直到第一个*/为止,在这当中出现的任何/*都违反了本规则;2.3代码段不应被“注释掉”;;3.1(强制): 所有实现定义(implementation-defined)的行为的使用都应该文档化;3.2(强制): 字符集和相应的编码应该文档化;3.3(建议): 应该确定、文档化和重视所选编译器中整数除法的实现;3.4(强制): 所有#pragma指令的使用应该文档化并给出良好解释;3.5(强制):如果做为其他特性的支撑,实现定义(implementation-defined)的行为和位域(bitfields)集合应当文档化;3.6(强制): 产品代码中使用的所有库都要适应本文档给出的要求,并且要经过适当的验证4.1(强制): 只能使用ISO C标准中定义的escape序列;4.2不能使用三字母词(trigraphs);5.1(强制): 标识符(内部的和外部的)的有效字符不能多于31;5.2 (强制):具有内部作用域的标识符不应使用与具有外部作用域的标识符相同的名称,这会隐藏了外部标识符;5.3(强制):typedef的名字应当是唯一的标识符;5.4(强制): 标签(tag)名称必须是唯一的标识符;5.5(建议): 具有静态存储期的对象或函数标识符不能重用;5.6(建议): 一个命名空间中不应存在与另外一个命名空间中的标识符拼写相同的标识符,除了结构和联合中的成员名字;5.7 (建议): 不能重用标识符名字;6.1 (强制): 单纯的char类型应该只用做存储和使用字符值;6.3 (建议): 应该使用指示了大小和符号的typedef以代替基本数据类型;6.4(强制): 位域只能被定义为unsigned int或singed int类型;6.5(强制):unsigned int类型的位域至少应该为2 bits长度;7.1 (强制): 不应使用八进制常量(零除外)和八进制escape序列;8.1(强制): 函数应当具有原型声明,且原型在函数的定义和调用范围内都是可见的;8.2(强制): 不论何时声明或定义了一个对象或函数,它的类型都应显式声明;8.3(强制): 函数的每个参数类型在声明和定义中必须是等同的,函数的返回类型也该是等同的;8.4(强制): 如果对象或函数被声明了多次,那么它们的类型应该是兼容的;8.5(强制): 头文件中不应有对象或函数的定义;8.6(强制): 函数应该声明为具有文件作用域;8.7(强制): 如果对象的访问只是在单一的函数中,那么对象应该在块范围内声明;8.8(强制): 外部对象或函数应该声明在唯一的文件中;8.9(强制): 具有外部链接的标识符应该具有准确的外部定义;8.10(强制): 在文件范围内声明和定义的所有对象或函数应该具有内部链接,除非是在需要外部链接的情况下;8.11(强制):static存储类标识符应该用于具有内部链接的对象和函数的定义和声明;8.12(强制): 当一个数组声明为具有外部链接,它的大小应该显式声明或者通过初始化进行隐式定义;9.1(强制): 所有自动变量在使用前都应被赋值;9.2(强制): 应该使用大括号以指示和匹配数组和结构的非零初始化构造;9.3 在枚举列表中,“=”不能显示用于除首元素之外的元素上,除非所有的元素都是显示初始化的;;10.3(强制): 整型复杂表达式的值只能强制转换到更窄的类型且与表达式的基本类型具有相同的符号;10.4(强制): 浮点类型复杂表达式的值只能强制转换到更窄的浮点类型;10.5(强制): 如果位运算符~ 和 应用在基本类型为unsigned char或unsigned short的操作数,结果应该立即强制转换为操作数的基本类型;当操作符用在small integer类型时会遇到类似的问题,高端数据位被保留下来。例如:
result_16 = ( ( port 4 ) mode ) 6 ; /* not compliant */
result_16的值将依赖于int实现的大小。附加的强制转换可以避免任何模糊性。
result_16 = ( ( uint16_t ) ( ( uint16_t ) p
您可能关注的文档
最近下载
- 企业职务犯罪预防讲座PPT文档共26页.ppt
- 机井工程技术标准 GB_T50625-2023.docx VIP
- 高效课堂中合作学习的策略与效果教学研究课题报告.docx
- 2024版特种设备重大事故隐患判定准则PPT.pptx
- 初中语文学科中分层作业设计的实践与总结教学研究课题报告.docx
- 多人投资合作协议书(通用版).pdf VIP
- 北京市海淀区2024年七年级下学期数学期中试卷2套(附答案).docx VIP
- 2024年辽宁省抚顺市新抚区中考模拟(四)语文试题(含答案).pdf VIP
- 2025年自考《马克思主义基本原理概论》考前押题密卷及答案解析.pdf VIP
- 危重孕产妇抢救演练理论考核试题(含答案).pdf VIP
文档评论(0)