Is C++11's long long really at least 64 bits?

前端 未结 1 1720
小蘑菇
小蘑菇 2020-11-29 06:17

It says here and here that type long long is at least as long as an int and has no fewer than 64 bits. I have been looking at the

相关标签:
1条回答
  • 2020-11-29 07:11

    The C++ standard references the C standard for this, see [c.limits]. LLONG_MAX is defined in <climits> with the same meaning as C's <limits.h>'s LLONG_MAX. And this is what C has to say:

    5.2.4.2.1 Sizes of integer types <limits.h>

    The values given below shall be replaced by constant expressions suitable for use in #if preprocessing directives. [...] Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.

    [...]

    -- maximum value for an object of type long long int

    LLONG_MAX +9223372036854775807 // 263 -1

    A signed type that must be capable of representing the value 9223372036854775807 requires 64 bits or more.

    0 讨论(0)
提交回复
热议问题