Este grupo de especialistas despúes de muchos días de investigación y recopilar de información, obtuvimos los datos necesarios, queremos que te sea útil para tu proyecto.
sizeof(bool)
está definida la implementación, y el estándar pone un énfasis notable en este hecho.
§5.3.3/1, abreviado:
sizeof(char)
,sizeof(signed char)
ysizeof(unsigned char)
son 1; el resultado desizeof
aplicada a cualquier otro tipo fundamental está definida por la implementación. [Note: in particular,sizeof(bool)
andsizeof(wchar_t)
are implementation-defined.69)]
Nota al pie 69):
sizeof(bool)
no es necesario que sea 1.
http://msdn.microsoft.com/en-us/library/tf4dy80a.aspx
“En Visual C++ 4.2, los archivos de encabezado de C++ estándar contenían un typedef que equiparaba bool con int. En Visual C++ 5.0 y versiones posteriores, bool se implementa como un tipo incorporado con un tamaño de 1 byte. Eso significa que para Visual C++ 4.2, una llamada de sizeof(bool) da como resultado 4, mientras que en Visual C++ 5.0 y versiones posteriores, la misma llamada da como resultado 1. Esto puede causar problemas de corrupción de memoria si ha definido miembros de estructura de tipo bool en Visual C++ 4.2 y están mezclando archivos de objetos (OBJ) y/o DLL creados con los compiladores 4.2 y 5.0 o posteriores”.
Su implementación definida. Solamente sizeof(char)
es 1
por el estándar.
Valoraciones y reseñas
Recuerda dar recomendación a este tutorial si si solucionó tu problema.