回答
在1998标准中,long int
和unsigned long int
是至少与任何标准的其他整型(§3.9.1/ 2-3)一样大的类型。 (它们可能是也可能不是“最大”的类型,例如long int
的大小可能与int
相同,因此char
的大小也可能相同)。浮点数long double
至少提供了与其他两种浮点类型(§3.9.1/ 8)一样精确。
在C++ 0x(n3092)草案标准中,类型为long long int
和unsigned long long int
(§3.9.1/ 2-3)。最精确的浮点类型仍然是long double
(§3.9.1/ 8)。
实现可以提供超出标准要求的更大类型。查看文档以获取有关的详细信息。
在C++ 03中,long [int]
和unsigned long [int]
具有最大的整数范围,并且long double
具有最大的FP精度和范围。
在C++ 0x,intmax_t
和uintmax_t
中积分范围最大,甚至可能大于long long
。例如,对于一个实现来说,合理的做法是使得64位的数字为long
和long long
,并使128位数为intmax_t
。
intmax_t
只是从C99被采用,所以如果你的实现支持C99,你不需要C++ 0x。只需包括stdint.h
而不是cstdint
。无论如何,使用“C风格”头文件是完全安全的,尽管我不确定是否有一种很好的方法来检查C++中的C99 typedefs。
精确或方便地命名的浮点类型不是在C99或C++ 0x中引入的,因此如果需要可移植性,请避免使用类似float64_t
或floatmax_t
的东西。
我仍然认为'intmax_t'应该被命名为'longgest long int'。 – 2010-04-18 04:31:09
- 1. 目标C:原始数据类型
- 2. 什么是“符号”的原始数据在JavaScript类型
- 3. 二进制数据的标准SQL类型是什么?
- 4. WINOLEAPI的C#数据类型是什么?
- 5. 是c宏中的原始数据类型?
- 6. 从.NET为非原始数据类型调用旧的C++函数
- 7. 部分原始旧数据
- 8. 为什么原始数据类型在java.util.ArrayList中不允许?
- 9. 原始数据类型Vs的对象在目标C
- 10. 为什么原始数组的多态类型是危险的
- 11. D中原始字符类型的局限性是什么?
- 12. 在C++函数中传递原始数据类型的最佳做法
- 13. 为什么在Win32 API中不使用标准数据类型?
- 14. 什么是C++中的复杂数据类型和虚数据类型?
- 15. 在C++标准中,我可以读取什么类型的整数文字?
- 16. 原始数据类型和包装数据类型的用法有什么区别,以及包装数据类型的需要是什么?
- 17. Linux的数据模型和原始类型大小
- 18. Java:为什么“long”原始类型不接受简单数字?
- 19. 实体成员应该是原始数据类型还是java数据类型?
- 20. C#原始数据类型VS .NET CTS类型
- 21. 这是C语言中最大的数据类型来存储大数值吗?
- 22. C中的原始数据类型用于表示CPU-arch的WORD大小
- 23. Lua的标准(或最佳支持)大数字(任意精度)库是什么?
- 24. 查询长的原始数据类型
- 25. C++中的跨平台原始数据类型
- 26. C中原始数据类型的范围?
- 27. 什么数据类型是一个空的数据库字段?
- 28. 什么是列数据类型Sharepoint列数据类型中的业务数据?
- 29. 关于mybatis的参数类型为原始数据类型?
- 30. C中数据类型的最小值和最大值
但是,C++ 0x有'',所以intmax_t和uintmax_t是最大的整数类型。 –
2010-04-17 11:35:21
只是为了记录,标准确实规定了最小尺寸,所以'long int'永远不能和char相同。从内存中,一个'int'必须至少有16位宽,'long int'至少有32个。 – jalf 2010-04-17 12:05:37
而在C++ 0x中,即使像'sizeof'这样的操作和事物可能产生的类型甚至比'unsigned long long“,但在C++ 03中不是这样。 – 2010-04-17 13:32:59