我正在编写使用g ++ lib(libpng)在vc ++中编译的代码,并且需要知道bool在g ++和vc ++中的大小和位是否相同。我所知道的全是0并且在vc ++中sizeof(bool)是1
答案 0 :(得分:3)
g++
版本(以及Visual C ++的版本也是如此)在某些平台上sizeof(bool)
不等于1.所以不,你不能认为它在g ++和Visual C ++上将是相同的。你甚至不能假设它在同一个编译器的不同版本或不同平台上的相同版本上是相同的。
答案 1 :(得分:2)
正如你可以在another question C ++ 03标准中看到的那样,$ 5.3.3 / 1说,
sizeof(char),sizeof(signed char)和sizeof(unsigned char)为1; sizeof应用于任何其他基本类型(3.9.1)的结果是实现定义的。 [注意:特别是sizeof(bool)和sizeof(wchar_t)是实现定义的.69)
所以sizeof(bool)
的结果是实现定义的。