c – 3字节int和5字节长?
C和C标准是否允许数字类型的大小不是二的幂?
以下约束是已知的: > 16< = CHAR_BIT * sizeof(int)< = CHAR_BIT * sizeof(long) 如果是 – 是否有任何已知的编译器/架构以类似的方式行事? 解决方法
我认为3.9.1 / 2(C 98)很好地总结了这一点(紧随其后的是无符号类型的类似信息):
基本上我们知道的是sizeof(char)== 1,每个“较大的”类型至少是一个大的,int是一个“自然”的体系结构大小(据我所知,“自然”)到编译器编写器).我们不知道像CHAR_BIT * sizeof(int)= 32等任何东西.还要记住,CHAR_BIT也不一定是8. 对于那些这些尺寸是本地使用的硬件,可以允许使用三个字节的int和5个字节长的字节.然而,我不知道任何这样的硬件/架构. 编辑:正如@Nigel Harper评论中所指出的那样,我们知道int必须至少为16位,长度至少为32位以满足范围要求.否则我们没有任何具体的大小限制,除了如上所述. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |