为了账号安全,请及时绑定邮箱和手机立即绑定

C ++标准规定了int的大小,long类型是什么?

C ++标准规定了int的大小,long类型是什么?

C++ C
达令说 2019-05-28 15:47:52
C ++标准规定了int的大小,long类型是什么?我正在寻找有关基本C ++类型大小的详细信息。我知道这取决于架构(16位,32位,64位)和编译器。但是有没有C ++的标准?我在32位架构上使用Visual Studio 2008。这是我得到的:char  : 1 byteshort : 2 bytesint   : 4 byteslong  : 4 bytesfloat : 4 bytesdouble: 8 bytes我试图找到,但没有成功,可靠的信息,表述的大小char,short,int,long,double,float(和其他类型的我没想到的),在不同的体系结构和编译器。
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

C ++标准没有以字节为单位指定整数类型的大小,但它指定了它们必须能够容纳的最小范围。您可以从所需范围推断出最小位数。您可以从中推断出以字节为单位的最小大小以及定义一个字节中位数CHAR_BIT宏的值(除了最模糊的平台之外,它都是8,并且它不能小于8)。

一个额外的约束char是它的大小总是1个字节,或CHAR_BIT位(因此名称)。

标准要求的最小范围(第22页)是:

MSDN上的数据类型范围:

  1. signed char:-127到127(注意,不是-128到127;这可以容纳1个补码和符号和大小的平台)

  2. unsigned char:0到255

  3. “plain” char:与signed charor 相同的范围,或者unsigned char实现定义的

  4. signed short:-32767至32767

  5. unsigned short:0到65535

  6. signed int:-32767至32767

  7. unsigned int:0到65535

  8. signed long:-2147483647至2147483647

  9. unsigned long:0到4294967295

  10. signed long long:-9223372036854775807至9223372036854775807

  11. unsigned long long:0到18446744073709551615

C ++(或C)实现可以将字节的大小(以字节sizeof(type)为单位)定义为任何值,只要

  1. 表达式sizeof(type) * CHAR_BIT求值为足够高的位数以包含所需的范围,并且

  2. 类型的排序仍然有效(例如sizeof(int) <= sizeof(long))。

实际的特定于实现的范围可以<limits.h>在C 中的头文件中找到,或者<climits>在C ++中找到(或者甚至更好,std::numeric_limits<limits>头文件中模板化)。

例如,您将找到以下内容的最大范围int

C:

#include <limits.h>const int min_int = INT_MIN;const int max_int = INT_MAX;

C ++

#include <limits>const int min_int = std::numeric_limits<int>::min();const int max_int = std::numeric_limits<int>::max();


查看完整回答
反对 回复 2019-05-28
?
忽然笑

TA贡献1806条经验 获得超5个赞

对于32位系统,“事实上”标准是ILP32 - 也就是说intlong指针都是32位数量。

对于64位系统,主要的Unix'事实上'标准是LP64 - long指针是64位(但是int是32位)。在Windows 64位标准是LLP64 - long long和指针是64位(但longint都是32位)。

有一段时间,一些Unix系统使用了ILP64组织。

这些事实上的标准都没有通过C标准(ISO / IEC 9899:1999)立法,但所有标准都是允许的。

而且,顾名思义,sizeof(char)就是1,尽管在Perl的配置脚本测试。

需要注意的是有机器(Crays),其中CHAR_BIT大于8.这意味着,IIRC大得多,这sizeof(int)也是1,因为这两个charint是32位。


查看完整回答
反对 回复 2019-05-28
  • 3 回答
  • 0 关注
  • 873 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信