-3

可能重复:
是否在 C++ 中定义了 sizeof(bool) 实现?

我正在编写使用 g++ lib (libpng) 在 vc++ 中编译的代码,并且需要知道 bool 在 g++ 和 vc++ 中的大小和位数是否相同。我所知道的是 false 都是 0 并且 sizeof(bool) 在 vc++ 中是 1

4

2 回答 2

3

在某些平台上,有一些版本g++(以及 Visual C++ 的版本)sizeof(bool)不等于 1。所以不,你不能假设它在 g++ 和 Visual C++ 上是相同的。您甚至不能假设它在同一编译器的不同版本或不同平台上的相同版本上是相同的。

于 2012-05-09T08:18:56.080 回答
2

正如您在另一个问题C++03 Standard $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)是实现定义的。

于 2012-05-09T07:48:56.610 回答