我得到了一个短值(只能限制为 a UINT8
)并想将其分配给UINT8
(/ unsigned char
)。
但我没有想到更好的选择,而是这样做:
unlatch.FaultBits.Value[0] = ui->lineEditFaultBits->text().toShort();
但这能在我使用时实现我想要的unlatch.FaultBits.Value[0]
吗?(Vaule[] 是结构体中的一个数组UINT8 Value[64];
:)
这能达到你想要的吗?好吧,我可以假设四种途径之一,因为您还没有确切地告诉我们您想要什么(抱怨)。
short
值分配给 a uint8_t
,而不进行有符号到无符号的转换。在这种情况下,您必须确保旧值在 a uint8_t
:的范围内assert(old_value >= 0 && old_value <= 255);
。如果这一点描述了您想要的行为并且断言失败,那么不,您的代码没有做您想要的。short
值,uint8_t
并且您看不到他的评论中描述的缩减过程 R 存在问题。如果这一点描述了你想要的行为,那么是的,你的代码做你想要的。short
值,uint8_t
而他的评论中描述的归约过程 R 对您不起作用,但您准备在代码中表达自己的归约算法。如果这一点描述了您想要的行为,那么不,您还没有表达您的自定义缩减算法。short
值,uint8_t
并且您不希望减小该值。在这种情况下,uint8_t
是不合适的。选择不同的类型。