簡體   English   中英

數據類型截斷

[英]Data Type Truncation

我有一個基本的C問題。

假設我已經聲明並初始化了一個標准的16位無符號整數

uint16_t var1 = 0x1234;

然后假設我聲明了一個8位無符號整數:

uint8_t var2;

如果我要分配,

var2 = var1;

這是有效的聲明嗎? 並會簡單地截斷更高位以產生如下結果:

var2 == 0x34

評估為真?

我想你的意思是:

uint16_t var1 = 0x1234;
uint8_t var2;
var2 = var1;

是的,這將截斷var1以使其適合var1的數據類型,因此var2等於0x34。

是。 編譯器會在內部將其解釋為

var2 = (uint8_t)var1;

這將導致var2的值為0x34。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM