93 votes

Suffixe ULL sur un littéral numérique

J'ai rencontré du code comme celui-ci:

 line += addr & 0x3fULL;
 

De toute évidence, "U" et "L" ne sont pas des chiffres hexadécimaux. Je devine que le "ULL" à la fin de ce littéral hexadécimal signifie "Unsigned Long Long" - est-ce que j'ai raison? (ce genre de chose est très difficile à rechercher sur Google). Si c'est le cas, s'agit-il d'une sorte de modificateur de suffixe sur le nombre?

97voto

NPE Points 169956

De la gcc manuel:

La norme ISO C99 prend en charge des types de données pour les entiers qui sont au moins 64 bits de large, et comme une extension de GCC soutient dans C90 mode et en C++. Simplement écrire long long int pour un entier signé, ou unsigned long long int pour un entier non signé. Pour faire une constante entière de type long long int,, ajoutez le suffixe LL de l'entier. Pour faire une constante entière de type unsigned long long int,, ajoutez le suffixe ULL de l'entier.

35voto

Mysticial Points 180300

Oui c'est correct.

  • 0x fait un littéral hexadécimal.
  • ULL fait taper unsigned long long .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X