Il est dit ici et là que le type long long
est au moins aussi longtemps que l' int
et n'a pas moins de 64 bits. J'ai été à la recherche sur le C++11 standard §3.9.1 Types Fondamentaux section et je ne trouve aucune référence à 64 bits. Tout ce que je peux trouver, c'est qu'il est au moins aussi longtemps à l' long int
, ce qui est au moins aussi longtemps qu' int
. Les listes normalisées long long
comme un standard de type entier, par opposition à une prolongée , donc je me demande si cette affirmation que long long
détient au moins 64 bits est vrai. Et si elle l'est, où est-il indiqué?
Veuillez noter que je parle de C++11 long long
seulement.
Réponse
Trop de publicités?La norme C++ références de la norme C pour cela, voir [c.limites]. LLONG_MAX
est définie en <climits>
avec le même sens que C <limits.h>
s' LLONG_MAX
. Et ce est ce que C est a dire:
5.2.4.2.1 Tailles des types d'entiers
<limits.h>
Les valeurs données ci-dessous sont remplacés par des expressions constantes adapté pour une utilisation en
#if
de prétraitement des directives. [...] Leur mise en œuvre-la définition des valeurs doit être égale ou de plus grande ampleur (valeur absolue) à celles indiquées, avec le même signe.[...]
-- valeur maximale pour un objet de type
long long int
LLONG_MAX +9223372036854775807 //
263 -1
Un type signé qui doit être capable de représenter la valeur 9223372036854775807
nécessite 64 bits ou plus.