以下是我无法理解的 MISRA C:2012 书的摘录
复合表达式 (+ ,- ,* ,/ ,&, |, ^, <<, >>, ?:) 的值不应分配给类型更宽的对象。
例子:
u32a = u16a + u16b; //non - compliant to MISRA C guidelines
其中 u16 是 uint16_t,u32 是 uint32_t。
这会在程序运行期间引起任何问题吗?我们可能需要使用 u32a,因为在这种情况下 u16a 可能会导致整数溢出?
以下是我无法理解的 MISRA C:2012 书的摘录
复合表达式 (+ ,- ,* ,/ ,&, |, ^, <<, >>, ?:) 的值不应分配给类型更宽的对象。
例子:
u32a = u16a + u16b; //non - compliant to MISRA C guidelines
其中 u16 是 uint16_t,u32 是 uint32_t。
这会在程序运行期间引起任何问题吗?我们可能需要使用 u32a,因为在这种情况下 u16a 可能会导致整数溢出?