Implementierungsdefinierte Größe von Bool im C-Standard
Obwohl der C-Sprachstandard explizit die Größen grundlegender Typen wie char, signiertes char angibt , und unsigned char jeweils 1 Byte groß sein müssen, bleibt die Definition von sizeof(bool) den Implementierern überlassen. Diskretion.
Der Standard betont diese Mehrdeutigkeit in §5.3.3/1:
sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; the result of sizeof applied to any other fundamental type is implementation-defined.
Dies bedeutet, dass die Größe von bool nicht garantiert 1 Byte beträgt und der Standard a enthält Fußnote (69) gibt ausdrücklich Folgendes an:
sizeof(bool) is not required to be 1.
Daher kann die Implementierung die Größe von Bool basierend auf verschiedenen Faktoren entscheiden, wie z. B. Architektur oder Plattformbeschränkungen. Daher kann sizeof(bool) je nach Compiler und System variieren.
Das obige ist der detaillierte Inhalt vonWas bestimmt die Größe eines „bool' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!