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