出处:http://blog.chinaunix.net/u3/110597/showart_2329904.html
转自http://hi.baidu.com/qinpc/blog/item/15c8ac64a10c10f5f736540a.html/cmtid/982c4c36a23153d0a3cc2bb5
int类型比较特殊,具体的字节数同机器字长和编译器有关。如果要保证移植性,尽量用__int16 __int32 __int64吧,或者自己typedef
int INT32一下。
C、C++标准中只规定了某种类型的最小字节数(防止溢出)
以下来自百度百科:“64位_”http://baike.baidu.com/view/125381.htm
64 位数据模型
以高阶语言编写的应用软件,从 32 位架构转换到 64
位架构的各种困难。一个共同的问题是,部分程序员假定指针如同其它数据型态一样有相同的长度。程序员假定他们可以在数据型态之间传送数量而不遗失信息。这些假定只在一部分
32 位机器上如此(甚至是一部分 16 位机器),不过在 64 位机器上就不再如此。C 语言及其后代 C++ 尤其容易产生这种错误。
C 和 C++
并未定义指针、整数型(int)、长型(long)为特定的位数目。
在主要的 32
位机器程序设计环境中,指针、“int”变量、“long”变量全部都是 32 位长。
在 64 位机器下的许多程序设计环境,“int”变量仍然是
32 位宽,不过“long”和指针是 64 位宽,上述内容称为 LP64 数据模型。另一个选择是 ILP64 数据模型,三种数据型态都是 64 位宽,甚至
SILP64 连“short”变量也是 64
位宽。然而,大多数情况下所需的修改是相对次要且简单,而且许多编写良好的程序可以简单的重新编译给新的环境,而无须修改。另一个选择是 LLP64 模型,其维持 32
位代码的兼容性,使 int 和 long 为 32 位。“LL”指“long long”型态,其在所有平台下至少是 64 位,包括 32
位环境。
今天有许多 64 位编译器使用 LP64 模型(包括 Solaris、AIX、HP、Linux、Mac OS X、IBM z/OS
本地编译器)。微软的 VC++ 编译器使用 LLP64 模型。其缺点是在 LP64 模型中将 long 存放到 int
可能会溢出。另一方面,还会使强制转型一个指针为 long 可以作用;在 LLP 模型下,情况则刚好相反。两者皆不应该出现在合乎 C99
的代码中。
注意,程序设计模型是在预编译器底层选择的,且数个模型可共存于同一操作系统。然而一般由 OS API
选择程序设计模型作为原始模型。
64位指的是cpu通用寄存器的数据宽度是64位的。
数据类型名称 |
字节数 |
别名 |
取值范围 |
int |
* |
signed,signed int |
由操作系统决定,即与操作系统的"字长"有关 |
unsigned int |
* |
unsigned |
由操作系统决定,即与操作系统的"字长"有关 |
__int8 |
1 |
char,signed char |
–128 到 127 |
__int16 |
2 |
short,short int,signed short int |
–32,768 到 32,767 |
__int32 |
4 |
signed,signed int |
–2,147,483,648 到 2,147,483,647 |
__int64 |
8 |
无 |
–9,223,372,036,854,775,808 到
9,223,372,036,854,775,807 |
bool |
1 |
无 |
false 或 true |
char |
1 |
signed char |
–128 到 127 |
unsigned char |
1 |
无 |
0 到 255 |
short |
2 |
short int,signed short int |
–32,768 到 32,767 |
unsigned short |
2 |
unsigned short int |
0 到 65,535 |
long |
4 |
long int,signed long int |
–2,147,483,648 到 2,147,483,647 |
long long |
8 |
none (but equivalent to __int64) |
–9,223,372,036,854,775,808 到
9,223,372,036,854,775,807 |
unsigned long |
4 |
unsigned long int |
0 到 4,294,967,295 |
enum |
* |
无 |
由操作系统决定,即与操作系统的"字长"有关 |
float |
4 |
无 |
3.4E +/- 38 (7 digits) |
double |
8 |
无 |
1.7E +/- 308 (15 digits) |
long double |
8 |
无 |
1.7E +/- 308 (15 digits) |
wchar_t |
2 |
__wchar_t |
0 到 65,535 |
类型标识符 |
类型说明 |
长度 (字节) |
范围 |
备注 |
char |
字符型 |
1 |
-128 ~ 127 |
-27 ~ (27 -1) |
unsigned char |
无符字符型 |
1 |
0 ~ 255 |
0 ~ (28 -1) |
short int |
短整型 |
2 |
-32768 ~ 32767 |
2-15 ~ (215 - 1) |
unsigned short int |
无符短整型 |
2 |
0 ~ 65535 |
0 ~ (216 - 1) |
int |
整型 |
4 |
-2147483648 ~ 2147483647 |
-231 ~ (231 - 1) |
unsigned int |
无符整型 |
4 |
0 ~ 4294967295 |
0 ~ (232-1) |
float |
实型(单精度) |
4 |
1.18*10-38 ~ 3.40*1038
|
7位有效位 |
double |
实型(双精度) |
8 |
2.23*10-308 ~ 1.79*10308
|
15位有效位 |
long double |
实型(长双精度) |
10 |
3.37*10-4932 ~ 1.18*104932
|
19位有效位
|
分享到:
相关推荐
数据结构与算法_C语言 01.swap.mp4 02.BubbleSort.mp4 03.SelecttionSort.mp4 04.顺序查找.mp4 05.C_DS_折半查找.mp4 06.递归.mp4 07递归算法_折半查找.mp4 08.Permutations.mp4 09.插入排序.mp4 10.快速...
#define MAX_THREAD_NUM 64 //定义一个结构,记录在测试文件中指定的每一个线程的参数 struct ThreadInfo { int serial; //线程序列号 char entity; //是P还是C double delay; //线程延迟 int thread_request...
用C语言的思想(结构化程序设计)编写的,只有申请和释放指针用C++语言,但是改为纯C++也不是很难。由于可以实现了预测功能,也无心修改成C++了,有兴趣的同仁可以自行修改,如有问题,敬请交流,多谢指教
数据结构课设-基于隐马尔可夫模型实现的地图匹配c++源码(带详细注释).zip数据结构课设-基于隐马尔可夫模型实现的地图匹配c++源码(带详细注释).zip数据结构课设-基于隐马尔可夫模型实现的地图匹配c++源码(带详细注释)...
1、资源内容:基于C++绘制NURBS曲线生成贝塞尔曲线和B样条曲线(完整源码+说明文档+基础教程+数据).rar 2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、适用对象:计算机,电子信息...
新安江模型C++代码分析 本文将对新安江模型C++代码进行详细的分析,主要从类的声明、变量的定义、函数的实现等方面进行剖析。 类的声明 类XinanjiangModel是新安江模型的核心实现类,该类包含了大量的变量和函数...
1、资源内容:基于c++ libtorch部署yolov5(完整源码+说明文档+数据).rar 2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、适用对象:计算机,电子信息工程、数学等专业的大学生课程...
资源内容:基于cmdconsole_磁力计模型的c、c++仿真(完整源码+数据).rar 代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 适用对象:工科生、数学专业、算法方向等学习者。 作者介绍:某大厂...
如果你是一位C++程序员,渴望对于底层知识获得一个完整的了解,那么Inside TheC++ Object Model正适合你。 目录: 本立道生(侯捷 译序) 前言(Stanley B.Lippman) 第0章 导读(译者的话) 第1章 关于对象...
高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一类分布但参数不一样,或者是不同...
根据提供的10个数据点的坐标(Xn,Yn,Zn)和待求点的平面坐标(Xp,Yp),利用移动二次曲面拟合法,由格网点P(Xp,Yp)周围的10个已知点内插出待求格网点P的高程
1、资源内容:基于yolov5检测onnxruntime c++(完整源码+说明文档+数据).rar 2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、适用对象:计算机,电子信息工程、数学等专业的大学生课程...
1、基于NORAD的SGP4和SDP4轨道预报C++源程序;老外源码,很多公司也有引用。 2、可用于两行数据计算预报卫星位置、速度等,可以计算卫星与地球站之间的仰角。 3、通过实际计算,已验证过,和STK等软件对比,精度...
深度探索C++对象模型 在C语言中,数据和处理数据的操作是分开来声明的,也就是说,语言本身并没有支持数据和函数之间的关联.我们把这种程序方法称为程序性的,由一组分布在各个以功能为导向的函数中的算法所驱动,它们...
基于Reactor模型事件驱动C++服务器C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的编程能力,包括面向对象编程...
08_C语言和C++语言的关系_工作经验分享 09_namespace和iotream 10_实用性加强_register增强_检测增强 11_struct关键字类型增强 12_c++类型类型检查加强 13_新增数据类型bool类型14_中午课程回顾 15_c++中的三目...
C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以...
花了一周时间把收集的资料整理好奉献给大家,希望大家选择性的学习,循循渐进,里面所有链接均可下载,不需要积分,全部高清图书,国内外经典,包括Linux操作系统,C语言,C++语言,QT开发,数据结构,算法等,总有...
本文档提供了 C++ 网络编程的基础知识,涵盖了网络编程的概述、OSI 七层网络模型、TCP/IP 协议和 C/S 编程模型等内容。 网络编程概述 网络编程是指用户使用 MFC 类库在 VC 编译器中编写程序,以实现网络应用。用户...
1、通过虚函数将通用数据类扩展成为工厂类; 2、展示一个初级类工厂模型开发的开发和改造过程;