Ho letto da qualche parte che l'utilizzo di BOOL (typedef int) è migliore rispetto all'utilizzo del tipo standard C++ bool perché la dimensione di BOOL è 4 byte (ovvero un multiplo di 4) e salva operazioni di allineamento di variabili in registri o qualcosa del genere ...C++ BOOL (typedef int) vs bool per prestazioni
C'è qualche verità in questo? Immagino che il compilatore riempia i frame dello stack per mantenere allineamenti multipli di 4 anche se usi bool (1 byte)?
Non sono affatto un esperto sui meccanismi di allineamento, registri, ecc. Quindi mi scuso in anticipo se ho sbagliato completamente. Spero di essere corretto. :)
Cheers!
Se 'bool' è più veloce di 4 byte, il compilatore lo renderà 4 byte. Dipende dallo scenario. Quindi no, 'BOOL' non fornisce un vantaggio in termini di prestazioni. – tenfour
Questo è il tipo di cosa che puoi scoprire solo tramite la creazione di profili, ma vuoi un valore bool che può avere valori diversi da 0,1? Anche i valori negativi? – juanchopanza
Questo non farà alcuna differenza. I valori dei pad del compilatore per garantire che siano allineati correttamente. Usa il tipo che ha più senso. Se si tratta di un valore booleano, rendilo un 'bool', non un' int' (o alcuni 'typedef' di ciò). –