Maison >développement back-end >C++ >Pourquoi 'long long' se comporte-t-il différemment de 'int' ou 'long' en C/C ?
Comprendre Long Long en C/C
En C et C, le type de données 'long long' représente un entier signé de 64 bits de précision. Cela lui permet de représenter des nombres extrêmement grands ou petits qui ne peuvent pas être pris en charge par des types entiers standard comme « int » ou « long ».
Dans l'extrait de code fourni, plusieurs questions ont été soulevées concernant le comportement de « long ». variables long' :
Taille de « long long » :
L'opérateur 'sizeof' renvoie la taille d'une variable ou d'un type de données en octets. Puisque 'num3' n'est initialisé avec aucune valeur, il reste non initialisé et sa taille n'est pas définie, ce qui donne 0. Pour remédier à cela, initialisez explicitement 'num3' avec une valeur 'long long'.
Débordement d'entier :
C gère le débordement d'entier en silence. Lorsque la valeur attribuée à une variable dépasse sa capacité, elle recommence et continue de compter à partir de la valeur la plus basse. Dans ce cas, attribuer 1 000 000 000 à une variable « longue » entraîne un débordement et le résultat est une valeur négative. Cependant, puisque 'num2' est un 'long long', il peut accueillir une grande valeur sans débordement.
Constantes entières littérales :
En C et C, entier les constantes sont fortement typées. L'attribution d'une constante entière littérale qui dépasse les limites du type de données de destination entraîne une erreur de compilation. Dans cet exemple, la constante 100000000000 dépasse la plage de « long », et l'ajout de « LL » spécifie explicitement qu'elle doit être traitée comme une constante « long long ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!