Ответ 1
Стандарт С++ ссылается на стандарт C для этого, см. [c.limits]. LLONG_MAX
определяется в <climits>
с тем же значением, что и C <limits.h>
LLONG_MAX
. И это то, что C должен сказать:
5.2.4.2.1 Размеры целых типов
<limits.h>
Значения, приведенные ниже, должны быть заменены постоянными выражениями, подходящими для использования в директивах
#if
предварительной обработки. [...] Их определяемые реализацией значения должны быть равны или больше по величине (по абсолютной величине) тем, которые показаны, с тем же знаком.[...]
- максимальное значение для объекта типа
long long int
LLONG_MAX +9223372036854775807 //
2 63 -1
Подписанный тип, который должен быть способен представлять значение 9223372036854775807
, требует 64 бит или более.