0
我工作的嵌入式控制器,具有确定了几个不同的非标准的类型,例如:圆括号和铸字
uint8 = unsigned char
sint16 = int
如果我需要强制转换从uint8
到sint16
,我应该用我的括号?
uint8 u8_My_Var = 255;
sint16 s16_New_Var = 0;
s16_New_Var = ((sint16)u8_My_Var + 1); //or
s16_New_Var = ((sint16)(u8_My_Var) + 1); //or
s16_New_Var = ((sint16)(u8_My_Var + 1)); //or
s16_New_Var = (((sint16)(u8_My_Var)) + 1);
我通常会使用(((sint16)(u8_My_Var)) + 1)
,但是我开始琢磨一下类型转换的“范围”。
第一,第二和第四是相同的;第三是危险的dirfferent,它执行无符号8位计算(包装在256),然后施放。 – vonbrand