c - sizeof(int) <= sizeof(long) <= sizeof(long long) 总是正确的?

标签 c types primitive-types

从C标准来看,int至少有16bit,long至少有32bit,long long如果有的话至少有64bit(有些平台可能不支持)。只是想知道标题中的句子是否总是正确的。

最佳答案

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

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

但是请注意,sizeof(char) == 1 , 根据定义。所以sizeof(char) <= sizeof( 还有什么 ) .

关于c - sizeof(int) <= sizeof(long) <= sizeof(long long) 总是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240121/

相关文章:

c - PowerPC 从内存中的已知地址加载方法地址并调用该方法

转换为 unsigned char 不起作用

c++ - 大型原始数字类型之间的算术 : can I save the overflow?

java - "Generic"原始数组的解决方案?

c - 增加指针的内容

c++ - 并发执行进程

c++ - OpenMP 中的并行编程

java - 如何在 JavaPoet 中创建具有给定名称的类型?

c++ - 我可以将 ostream 转换为 ofstream 吗?

java - int 和 Integer 的区别