MISRA-C:施放文字编号

时间:2017-03-27 20:54:48

标签: c misra

我读了一个源代码, 有一个声明如下: uint32 XYZ; ... XYZ =(uint32)0x0000000U。

我想知道演员是否必要,是XYZ = 0U好吗?

由于

1 个答案:

答案 0 :(得分:2)

整数常量0U理论上可以是64位的无符号整数。如果是这样,演员是必要的,因为MISRA-C(2012 10.3)不允许隐式转换为更窄的类型。但是,在32位CPU和更小的CPU上不需要强制转换。

另一种方法是编写uint32_t XYZ = UINT32_C(0);,在这种情况下,编译器会自动为整数常量选择合适的类型。