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;sizeof
diğ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 1
standarda göre.
CHAR_BIT
tanımlanmış olarak bulunabilir climits
.
bool
mı?