簡體   English   中英

C ++標准是否保證std :: uintmax_t可以保存std :: size_t的所有值?

[英]Does the C++ standard guarantee that std::uintmax_t can hold all values of std::size_t?

C ++標准是否保證(通過顯式聲明它或通過邏輯推導隱式) std::uintmax_t可以保存std::size_t所有值?

或者std::numeric_limits<std::size_t>::max()是否可能大於std::numeric_limits<std::uintmax_t>::max()

是。

size_t被定義為無符號整數類型,其大小足以包含任何對象的大小。 uintmax_t被定義為能夠存儲任何無符號整數類型的任何值。 因此,如果size_t可以存儲它, uintmax_t可以存儲它。

從C ++11§18.2中定義size_t

類型size_t是一個實現定義的無符號整數類型,它足夠大,可以包含任何對象的字節大小。

的定義uintmax_t從C99§7.18.1.5(它包括在C ++通過標准參考):

以下類型指定無符號整數類型,能夠表示任何無符號整數類型的任何值:

 uintmax_t 

暫無
暫無

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

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