[英]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.