[英]Integer promotion (MISRA C:2012 Rule 7.2)
MISRA强制将U
后缀用于无符号整数常量
uint32_t the_answer = 0x42U;
我觉得U
有点像样板,因为没有它,这条线很容易理解。
所以我想知道这个规则有多重要,如果unsigned int x = 1
确实是隐式整数提升的不好例子。
没错,根据规则10.3的例外,此特定示例中的U是多余的:
“如果一个基本符号类型的非负整数常量表达式的值可以用该类型表示,则可以将其赋给该基本符号类型的对象。”
因此,可以为该无符号的32位对象分配一个小于7FFF FFFF的有符号整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.