4 Stimmen

Mikro-Optimierungen: Verwendung von intptr_t für Flag/Bool-Typen

Soweit ich weiß, variiert die Definition von intptr_t je nach Architektur - es ist garantiert, dass es die Kapazität hat, einen Zeiger darzustellen, der auf den gesamten einheitlichen Adressraum eines Prozesses zugreifen kann.

Nginx (beliebter Open-Source-Web-Server) definiert einen Typ, der als Flag (boolean) verwendet wird, und dies ein typedef zu intptr_t . Wenn man nun die x86-64-Architektur als Beispiel heranzieht - die Zugang zu einer Fülle von Befehlen hat, die Operanden aller Größen abdecken - warum sollte das Flag als intptr_t definiert werden? Würde die Tradition der Verwendung eines 32-Bit-Bool-Typs nicht genauso gut passen?

Ich habe das Argument 32-Bit vs. 8-Bit-Bools selbst durchgespielt, als ich ein neuer Entwickler war, und die Schlussfolgerung war, dass 32-Bit-Bools aufgrund der Feinheiten des Prozessordesigns für den allgemeinen Fall besser funktionieren. Warum sollte man dann auf 64-Bit-Bools umsteigen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X