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