繁体   English   中英

sizeof(int)<= sizeof(long)<= sizeof(long long)总是如此?

sizeof(int) <= sizeof(long) <= sizeof(long long) always true?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

从C标准来看,int具有至少16位,长度至少为32位且长度至少为64位(如果有的话)(某些平台可能不支持)。 只是想知道作为标题的句子是否总是正确的。

4 个回复

不可以。标准仅定义了每种类型的最小范围。 可以想象int可以具有16位范围,但是48位填充,使其为64位(8字节,如果CHAR_BITS == 8),而长为32位(4字节)。

当然,这很愚蠢。 但这并不是禁止的。

但是,请注意, sizeof(char) == 1 ,根据定义。 所以sizeof(char) <= sizeof( 其他任何东西 )

根据C编程/参考表 ,特别是数据类型表

int≥16≥短的大小

长≥32≥int的大小

长长≥64尺寸长

正如bdonlan所指出的,这只是指值的范围,而不是内存中的大小(以字节为单位返回sizeof)。 C标准没有指定每种类型可以使用的内存大小,因此它留给实现。

实用的C ++编程说明了这一点

C ++保证存储<= int <= long

还在寻找很久

至少对于ISO C ++,这在3.9.1 [basic.fundamental] / 2中的标准中是明确定义的(除了显而易见的long long

有四种有符号整数类型:“signed char”,“short int”,“int”和“long int”。在此列表中,每种类型至少提供与列表中前面的存储一样多的存储空间

请注意,这是存储,而不是值范围。 这特别意味着sizeof

4 C - sizeof int数组总是返回4 [重复]

可能重复: C中的sizeof结构数组? sizeof作为函数参数传递的数组 只是尝试编写一个基本的sum()函数。 l总是等于4(我知道最终将它除以sizeof int ) 在Windows 7中使用默认编译器选项运行Dev-C ++。 ...

5 long % int 是否总是适合 int

任何人都可以确认这是真的吗? Java 会将long % int转换为long值。 但是,它永远不会大于模数,因此将其int转换为int始终是安全的。 同样一个long % short将永远是安全的强制转换为short 。 如果为真,有人知道为什么 Java 的%类型比需要的要长吗? 此 ...

2011-08-31 19:10:02 5 8560   java
6 是 sizeof(long) == sizeof(void*) 吗?

C 是否保证sizeof(long) == sizeof(void*) ? 如果不是,为什么它在 Linux 内核源代码中使用得如此广泛? 我看了sizeof(int)==sizeof(void*)? 但这谈到sizeof(int)与sizeof(void *) 。 ...

7 sizeof(T)== sizeof(int)?

我一直在研究草案标准,似乎无法找到我正在寻找的东西。 如果我有标准布局类型 然后我知道对于某些T t; , reinterpret_cast&lt;unsigned*&gt;(&amp;t) == &amp;t.handle T t; 目标是创建一些vector&lt;T&g ...

8 即使在 sizeof(void*)==sizeof(unsigned long int) 的情况下,也可能将 void* 转换为 unsigned long int 导致未定义的行为

事实上,我知道 C99 中有 uintptr_t 和 intptr_t。 但是,出于教育目的,我想问一些问题。 在我开始之前,我知道这是一种不好的做法,永远不应该这样做。 一季度。 情况 1 会导致未定义的行为吗? 安全吗? 如果不是,为什么? 如果它是安全的,是否可以保证“case_1”变量 ...

9 sizeof(long)与sizeof(* lp)

经常执行的一段代码具有以下计算: 将此更改为: 导致任何更高的效率(因为在编译时计算出sizeof的大小),或者现代编译器已经在编译时处理了这一点。 gcc是做什么的? ...

10 int条件总是返回true吗? 蟒蛇

我有一个称为check的函数,定义如下 总是返回true。 例如 谁能给我一些为什么会这样的见解? 是因为该数字大于可能的最大整数? 编辑:我已经添加了我的python提示符的图片。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM