bool fp[81];
根据我的理解, fp 应该使用 ceil(81/8) 字节,因为它是连续的。
我对么?
我怎样才能证明这一点?
不,缓冲区的大小是实现定义的,根据标准的引用:
$5.3.3/1 - “sizeof 运算符产生其操作数的对象表示中的字节数。操作数可以是未计算的表达式,也可以是带括号的类型 ID。sizeof 运算符不应应用于具有函数或不完整类型的表达式,或者在声明其所有枚举器之前的枚举类型,或者此类类型的括号名称,或者指定的左值
一个位域。 sizeof(char)、sizeof(signed char) 和 sizeof(unsigned char) 均为 1;这
sizeof 应用于任何其他基本类型 (3.9.1) 的结果是实现定义的。 [注意:特别是,sizeof(bool) 和 sizeof(wchar_t) 是实现定义的。69)] [注:字节的定义见1.7,对象表示的定义见3.9。]
因此,您可以预期的大小是 81 * X,其中 X 是 bool 的大小,这是实现定义的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)