Leí en alguna parte que usar BOOL (typedef int) es mejor que usar el bool estándar de tipo C++ porque el tamaño de BOOL es 4 bytes (es decir, un múltiplo de 4) y guarda operaciones de alineación de variables en registros o algo similar ...C++ BOOL (typedef int) vs bool para rendimiento
¿Hay algo de cierto en esto? Me imagino que el compilador rellenaría los marcos de la pila para mantener las alineaciones de múltiplos de 4, incluso si usa bool (1 byte).
No soy de ninguna manera un experto en el funcionamiento subyacente de alineaciones, registros, etc., así que me disculpo por adelantado si tengo esto completamente mal. Espero ser corregido :)
¡Salud!
Si 'bool' es más rápido que 4 bytes, el compilador lo convertirá en 4 bytes. Depende del escenario Entonces, no, 'BOOL' no da un beneficio de rendimiento. – tenfour
Este es el tipo de cosas que solo puede descubrir a través de la creación de perfiles, pero ¿desea un bool que pueda tener valores distintos de 0,1? ¿Incluso valores negativos? – juanchopanza
Esto no hará ninguna diferencia. El compilador rellena los valores para asegurarse de que estén alineados correctamente. Usa el tipo que tenga más sentido. Si se trata de un valor booleano, conviértalo en un 'bool', no en un' int' (o en un 'typedef'). –