簡體   English   中英

Uint32和C ++中的unsigned int有什么區別?

[英]What is the difference between an Uint32 and an unsigned int in C++?

它是一樣的嗎? 如果不是:有什么區別? 如果是,那你為什么需要這種類型?

uint32_t (或者前C ++ 11編譯器調用它)保證是32位無符號整數; unsigned int是編譯器最喜歡調用unsigned int ,只要它符合標准的要求(要求它為0-65535最小范圍)。

int類似, unsigned int通常是一個快速操作當前體系結構的整數(通常它適合於寄存器),因此當需要“正常”快速整數時,它將被使用。

相反, uint32_t用於需要精確寬度整數時,例如序列化為文件,或者當您需要精確范圍或依賴無符號溢出恰好發生在2^32-1

例如,在16位處理器上, unsigned int通常為16位寬,而uint32_t 必須為32位寬。


順便提一下,正如@Marc Glisse所指出的,雖然unsigned int始終存在,但uint32_t不是必需的 - 特定的編譯器實現可能不會提供它。 這主要是因為並非所有平台都能輕松提供這種類型(通常是具有奇怪字長的DSP)。

暫無
暫無

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

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