Warum ist size_t Unsigned?
Frage:
In seinem Buch rät Bjarne Stroustrup gegen die Verwendung vorzeichenloser Ganzzahlen, um ein zusätzliches Bit für die Darstellung positiver Ganzzahlen zu gewinnen. Allerdings ist size_t, ein Typ, der üblicherweise zur Darstellung von Array- und String-Größen verwendet wird, ohne Vorzeichen. War das ein Fehler und sollte die Verwendung von size_t minimiert werden?
Antwort:
size_t ist aus historischen Gründen nicht signiert:
Architektonische Einschränkungen:
Auf älteren Architekturen mit 16-Bit-Zeigern wäre eine Begrenzung der Zeichenfolgen auf 32 KB unpraktisch. Um dies zu beheben, erfordert der C-Standard, dass ptrdiff_t, das vorzeichenbehaftete Gegenstück zu size_t, einen effektiven Bereich von 17 Bits hat.
Eingebettete Systeme:
In bestimmten eingebetteten Programmierungen In Umgebungen gelten diese historischen Gründe immer noch.
Nachteile von vorzeichenlosen Typen:
In der modernen 32-Bit- und 64-Bit-Programmierung weisen vorzeichenlose Typen jedoch erhebliche Nachteile auf :
Fazit:
Die Entscheidung, size_t unsigniert zu machen, war angesichts der architektonische Einschränkungen der Zeit. In der modernen Programmierpraxis wird jedoch aufgrund ihrer inhärenten Nachteile dringend davon abgeraten, vorzeichenlose Typen für numerische Operationen zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum ist „size_t' trotz der bekannten Nachteile ohne Vorzeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!