MISRA C:2012 8 Rules 8.1 A Standard C environment
Posted focus-z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MISRA C:2012 8 Rules 8.1 A Standard C environment相关的知识,希望对你有一定的参考价值。
8.1
程序不得违反标准C语法和约束,不得超出实现的转换限制
0232 十六进制转义序列的值在“unsigned char”类型中无法表示。
int ia = ‘\x4142‘; /* Message 0232 */
char 字符常量只有1个Byte大小(不考虑宽字符常量),‘\x4142’ = 16706, 超过范围了。 0-255
十六进制转义序列的值不得超过unsigned char中可表示的值的范围.
char 类型用于存储字母和标点符号之类的字符,但是在技术实现上char却是整数类型,这是因为char类型实际存储的是整数而不是字符
char grade = ‘A‘ ;
char grade = 65; // 这是一种不好的编程风格
令人奇怪的是,C将字符常量视为int类型而非char类型
以上是关于MISRA C:2012 8 Rules 8.1 A Standard C environment的主要内容,如果未能解决你的问题,请参考以下文章
MISRA C:2012 Dir-1.1(只记录常犯的错误和常用的规则)Bit-fields inlineC99,NOT support in C90 #pragma