C++中最大的数据类型是什么
What's the biggest data type in C++
我在 c++ 中搜索了最大的数据类型,但每个站点编写的数据类型都不同。如果有专家,他(她(能写出答案吗?这很重要。谢谢。
它(标量类型的最大大小(是特定于实现的。
你可能会有一些奇怪的实现,64位宽的char
,sizeof(char)
、sizeof(int)
、sizeof(long)
、sizeof(long long)
,sizeof(void*)
都是1。
我不知道 C++11 的这种实现,但我听说过 SBCL 上方的奇怪 C99 实现在做类似的事情。我可能错了。
AFAIK,long long
应至少为 64 位宽。而且long double
通常比这更宽(但我不知道标准要求它是什么(。
此外,实现可以具有额外的(和特定的(内置类型,例如 _int128_t
最近的一些海湾合作委员会
如果你关心最大的对齐方式,这是一个稍微不同的问题,看看这个。(16 字节在 x86-64 上是一个很好的对齐方式,例如因为 AVX(。
当然聚合(例如 struct
或数组(可以具有相当大的大小(在GCC上,比内置类型更大的对齐方式(。
聚合的实际最大大小肯定受到虚拟地址空间的限制(因此,平板电脑或笔记本电脑上只有几千兆字节,如果您足够富有,可以访问一些昂贵的超级计算机,则为数TB甚至PB(。
但是,调用堆栈实际上通常限制为几兆字节(或在昂贵的超级计算机上为千兆字节(。因此,巨大的数据结构最好在堆上分配(请注意,像std::vector
这样的 STL 容器通常将其大部分数据分配到堆中,即使容器是局部变量也是如此(。
具体来说,在堆上分配超过几 GB 的连续区域(这可能会在您的平板电脑上失败(时要小心。
我很确定你不会得到比这更大的类型:
struct Big
{
char buf[static_cast<size_t>(-1)];
};
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- 字符串中单个字符作为数组的数据类型是什么
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- 通过插座发送的内容的数据类型是什么
- 向量中对元素的数据类型是什么?
- 对应于 AS3 编号(整数)的C++数据类型是什么?
- C++中字符串文字的数据类型是什么
- C++什么数据类型是thread_id,它能分配给变量吗
- Streamsize,Streamoff和其他与流相关的数据类型的实际类型是什么
- 什么数据类型是 16 位操作系统中的 32 位和 32 位操作系统中的 64 位
- C++ 中双引号内的字符串的数据类型是什么
- 将 c++ dll 导入 vb.net 时 float*(图像类型)的等效数据类型是什么?
- C++中最大的数据类型是什么
- C和c++中内置数据类型的类型是什么?
- c++中的布尔数据类型是什么?
- 读取纳秒值的数据类型是什么?
- vptr的数据类型是什么
- C++中字符串文字的数据类型是什么