Ist Long garantiert mindestens 32 Bit?
Der C-Standard schreibt die folgende Rangfolge in Bezug auf die Datenspeicherung für Integrale vor grundlegende Typen:
sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)
Weitere Erläuterungen zur Größe von char finden Sie in Abschnitt 1.7/1:
The fundamental storage unit in the C++ memory model is the byte. A byte is at least large enough to contain any member of the implementation’s basic character set and is composed of a contiguous sequence of bits, the number of which is implementation-defined.
Dies legt nahe, dass sizeof(char) irgendwo zwischen 1 und n liegen kann Bits, wobei n von der Implementierung abhängt. Der C-Standard erfordert jedoch auch Kenntnisse des C-Standards (1.2/1), der Mindestgrenzen für die Werte definiert, die long aufnehmen kann:
LONG_MIN = -2147483647 // -(2^31 - 1) LONG_MAX = +2147483647 // 2^31 - 1
Da long sowohl positive als auch negative Werte halten muss Bei Werten bis zu diesen Grenzwerten lässt sich logischerweise ableiten, dass long mindestens 32 Bits groß sein muss.
Kurz gesagt: Während der C-Standard die Anzahl der Bits in einem Byte nicht spezifiziert, gelten für LONG_MIN die Mindestgrenzen und LONG_MAX implizieren, dass long mindestens 32 Bit Speicherplatz haben muss.
Das obige ist der detaillierte Inhalt vonIst „long' in C garantiert mindestens 32 Bits lang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!