Maison  >  Article  >  développement back-end  >  Est-ce que "long" est garanti d'être au moins 32 bits en C ?

Est-ce que "long" est garanti d'être au moins 32 bits en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 17:23:02182parcourir

Is

"long" est-il garanti d'être au moins 32 bits ?

Alors que la norme C dicte une progression hiérarchique dans les tailles de l'intégrale fondamentale types (avec "long int" étant le plus grand), il n'impose pas explicitement une largeur de bits spécifique pour "long". Cependant, il existe un déterminant crucial qui garantit que « long » fait au moins 32 bits.

La norme C hérite des limites du C (18.3.2) pour « LONG_MIN » et « LONG_MAX », qui sont définies comme -( 2^31 - 1) et (2^31 - 1), respectivement. Cela implique que "long" doit être capable de stocker des valeurs dans cette plage.

De plus, "std::numeric_limits::min()" et "std::numeric_limits::max ()" sont spécifiés comme étant équivalents à "LONG_MIN" et "LONG_MAX" (18.3.1.2). Cela signifie que "long" peut représenter les limites du type "long".

En conclusion, même si "long" peut avoir une représentation binaire variable dans différentes implémentations, il est garanti qu'il est d'au moins 32 bits en raison de les exigences relatives à ses valeurs minimales et maximales. Ceci est déterminé par les limites C héritées par C et par la façon dont "std::numeric_limits" gère ces limites.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn