D'après ce que je comprends, la définition d'intptr_t varie selon l'architecture - il est garanti d'avoir la capacité de représenter un pointeur qui peut accéder à tout l'espace d'adressage uniforme d'un processus.Micro-optimisations: en utilisant intptr_t pour les types flag/bool
Nginx (populaire serveur web open source) définit un type qui est utilisé comme un flag (booléen) et ceci un typedef à intptr_t
. Maintenant, en utilisant l'architecture x86-64 comme exemple - qui a accès à une pléthore d'instructions couvrant des opérandes de toutes tailles - pourquoi définir le drapeau à intptr_t? Sûrement la tradition d'utiliser un type de booléen 32 bits serait tout aussi bien faire l'affaire?
J'ai parcouru le Vs 32 bits. Les booléens de 8 bits argumentent moi-même quand j'étais un nouveau développeur, et la conclusion était que les booléens de 32 bits fonctionnent mieux pour le cas commun en raison des subtilités de la conception de processeur. Pourquoi alors faut-il passer aux booléens 64 bits?