c – sizeof(int)> = 2和sizeof(long)> = 4:对于任何实现,这总是如此吗?

c – sizeof(int)> = 2和sizeof(long)> = 4:对于任何实现,这总是如此吗?,第1张

概述B.Stroustrup在他的新书(TCPL第4版)第6.2.8节中说明如下: Some of the aspects of C++’s fundamental types, such as the size of an int, are implementation defined (§6.1). 稍后,在第150页中,我们有以下示例: int_least16_t y; // at least B.Stroustrup在他的新书(TCPL第4版)第6.2.8节中说明如下:

Some of the aspects of C++’s fundamental types,such as the size of an
int,are implementation defined (§6.1).

稍后,在第150页中,我们有以下示例:

int_least16_t y; // at least 2 bytes (just like int)int_least32_t yy // at least 4 bytes (just like long)

我对这两个注释的解释是int(或long)的大小是实现定义的,但它们的最小大小总是分别等于2和4个字节.也就是说,对于任何实现,sizeof(int)> = 2并且sizeof(long)> = 4.

首先,这是正确的吗?如果是这样,标准中的内容在哪里?

解决方法 不,并非总是如此. char可能是64位类型,其中casesizeof(int)和sizeof(long)都可以是1.

但是,你保证的是sizeof(int)* CHAR_BIT> = 16和sizeof(long)* CHAR_BIT> = 32,因为int和long分别需要至少16位和32位.

总结

以上是内存溢出为你收集整理的c – sizeof(int)> = 2和sizeof(long)> = 4:对于任何实现,这总是如此吗?全部内容,希望文章能够帮你解决c – sizeof(int)> = 2和sizeof(long)> = 4:对于任何实现,这总是如此吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1218262.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存