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类型

猜你喜欢

转载自www.cnblogs.com/focus-z/p/11456302.html