簡體   English   中英

基本類型在不同平台上的容量

[英]Capacity of fundamental types across different platforms

我知道sizeof(type)將返回不同的值,具體取決於平台和編譯器。

但是,我知道,每當談到ints (int32)時,都可以說它可以是2 ^ 32值之一。

如果我在int32為8字節的平台上,則理論上最大為2 ^ 64。 它真的可以存儲那么多數據,還是總是存儲4個字節並使用4個字節進行填充?

問題確實是,雖然我知道類型的大小會有所不同,但我想知道在各種平台上請求max_int是否會保持不變,還是會根據類型大小為我提供值。

特別是在處理文件時。 如果我將int32寫入文件,它將始終存儲4個字節,還是取決於?

編輯:考慮到所有評論以及我試圖創建等效的C#BinaryReader的事實,我認為使用固定大小類型是最佳選擇,因為它將所有這些都委派給使用它的人(使其更加靈活) 。 對?

std :: int32_t的大小始終為32位(通常為4個字節)。

int的大小可能會有所不同,並取決於要編譯的平台,但至少為16位(通常為2個字節)。

您可以在C ++中檢查類型的最大值:

#include <limits>

std::numeric_limits<std::int32_t>::max()
std::numeric_limits<int>::max()

暫無
暫無

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

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