Yanıtlar:
sizeof(bool) uygulama tanımlanmıştır ve standart bu gerçeğe dikkate değer bir vurgu yapmaktadır.
§5.3.3 / 1, kısaltılmış:
sizeof(char),sizeof(signed char)Vesizeof(unsigned char)1 'dir;sizeofdiğer herhangi bir temel türe uygulanmasının sonucu uygulama tanımlıdır. [Not: özelliklesizeof(bool)vesizeof(wchar_t)uygulama tanımlıdır. 69) ]
Dipnot 69):
sizeof(bool)1 olması gerekli değildir.
http://msdn.microsoft.com/en-us/library/tf4dy80a.aspx
"Visual C ++ 4.2'de, Standart C ++ üstbilgi dosyaları, bool'u int ile eşitleyen bir typedef içeriyordu. Visual C ++ 5.0 ve sonraki sürümlerde bool, 1 bayt boyutunda yerleşik bir tür olarak uygulanır. Bu, Visual için C ++ 4.2, sizeof (bool) çağrısı 4 verirken, Visual C ++ 5.0 ve sonraki sürümlerde aynı çağrı 1 verir. Bu, Visual C ++ 4.2'de bool türünün yapı üyelerini tanımladıysanız ve nesneyi karıştırıyorsanız bellek bozulması sorunlarına neden olabilir dosyaları (OBJ) ve / veya 4.2 ve 5.0 veya sonraki derleyicilerle oluşturulmuş DLL'ler. "
Uygulama tanımlıdır. Sadece sizeof(char)bir 1standarda göre.
CHAR_BITtanımlanmış olarak bulunabilir climits.
boolmı?