【C语言】32位,64位机器sizeof区别

float, double : 采用IEEE标准浮点数格式,格式固定 float 32bit, double 64bit

int一般和CPU寄存器长度有关,不过也和编译器,汇编器有关

由于C ,C++ 标准没有规定整数类型的固定长度。
同一CPU不同操作系统和编译器,对于int 类型规定的长度是不同的
于是为了区别这些不同,出现了数据模型这种东西。
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
TYPE               LP32  ILP32  LP64  ILP64  LLP64
char                 8         8          8         8         8
short               16       16        16       16       16
int                  16       32        32        64      32
long                32       32        64       64       32
long long         64       64        64       64       64
pointer            32       32        64       64       64

模型的名字就表明了相应数据类型的位数。LP32就表示long 和 pointer 是32位的其他的类推。

windows下采用的是LLP64, Unix系列的采用的是LP64

注意:char, short, long long在所有模型下的大小都相同

指针在32位下为32bit, 在64位下为64bit

来自:http://bbs.csdn.net/topics/390848520

时间: 2024-10-24 19:02:50

【C语言】32位,64位机器sizeof区别的相关文章

@清晰掉 各种类型32位与64位下各类型长度对比

64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂):可以访问大型数据库.本文介绍的是64位下C语言开发程序注意事项. 1. 32 位和 64 位C数据类型 32和64位C语言内置数据类型,如下表所示: 上表中第一行的大写字母和数字含义如下所示:I表示:int类型L表示:long类型P表示:pointer指针类型32表示:32位系统64表示64位系统如:LP64表示,在64位系统下的long类型和pointer类型长度为64位.64位Li

qml实现对SSL的支持(使用msys2,同时支持32和64位)超详细 good

首先准备环境.两种方法,使用mingw64 或者VS 直接放上下载地址https://sourceforge.net/projects/msys2/我下载的是msys2-x86_64-20161025 ,同时支持32和64位里面有三个EXE   msys2  mingw64  mingw32  3个程序完全独立各自使用各自的gcc 再也不用麻烦的切换了.进入msys2  这时可以运行  pacman   使用说明地址https://wiki.archlinux.org/index.php/pac

dll文件32位64位检测工具以及Windows文件夹SysWow64的坑(很详细,还有自动动手编程探测dll)

阅读目录 dll文件不匹配导致数据库无法启动 究竟是System32还是SysWow64 区分dll文件32位64位的程序让我倍感迷惑 再次判断究竟是System32还是SysWow64——意想不到的坑 Program Files (x86)与Program Files 32位程序真的需要访问System32吗 32位程序与64位程序的区别总结 参考资料 自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program

深度技术ghost win8 32位/64位装机旗舰版V2014

深度技术ghost win8 32位装机旗舰版V2014下载地址:http://pan.baidu.com/s/1kTLqJLt 深度技术ghost win8 64位装机旗舰版V2014下载地址:http://pan.baidu.com/s/1i3zakU5 本软件深度技术ghost win8 32位/64位装机旗舰版V2014由深度系统官网特别分享: 一.主要更新 * 更新PE系统采用2003内核,支持最新型号机器,解决一些笔记本认不到硬盘问题. * 驱动采用自由天空最新驱动包,个别电脑可能会

32位与64位

1.我们所说的64位CPU架构指的是64位内存扩展技术,它是32CPU架构的一个扩展,且兼容原来的架构.它通过增加CPU的运算位宽扩展增加CPU和内存之间的位宽,从而让系统支持更大容量的内存,64位最大支持64G. 2.处理器模式:传统32位模式:安装32位操作系统,安装32位硬件驱动程序,安装32位应用程序.目前大多数人的处理器是Intel 64,安装了32位操作系统,程序运行良好,包括16bit和32bit程序. 兼容模式:操作系统和硬件驱动程序都是64bit,计算机允许64bit操作系统下

查看系统版本、32位与64位生产场景中的使用及对比

一.查看系统版本 [[email protected] ~]# uname -a #系统版本详细信息 Linux ysolin 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# uname -r   #内核版本 2.6.32-431.el6.x86_64 [[email protected] ~]# uname -m   #

阿里云主机Windows 2008 32位 64位自助正版激活图文教程

这篇文章主要介绍了阿里云主机Windows 2008 32位 64位自助正版激活图文教程,本文讲解详细,图文说明自助激活Windows正版教程,需要的朋友可以参考下 Windows2008 32位.64位 中文版操作系统,自助激活Windows正版,远程登录服务器后: 1.开始——运行 2.在运行里面输入cmd. 系统会跳出如下窗口: 3.输入slmgr   -skms   kms.aliyun-inc.com 4.输入slmgr -ato 5.完成

dumpbin判断windows程序是32还是64位(包括DLL)

http://blog.csdn.net/csfreebird/article/details/10105681 dumpbin /HEADERS gdal18.dll(or xxx.exe) 如果安装过VS2012的话,直接打开一个VS 2012提供的控制台窗口,比如VS2012 x64 Native Tools Command Prompt. 用下面的命令查看程序的头部信息: [cpp] view plain copy gdal_1.8_rtc>dumpbin /HEADERS gdal18

关于32位/64位版本头文件的重要

1.今天在测试产品发现一个十分异常的现象,代码从语法上分析完全正确,代码如下 2.在32位系统上编译可以通过,其中第15行出现警告:warning: initialization makes pointer from integer without a cast, 但执行时,正常结束 3.在64位linux系统编译可以通过,其中第15行出现警告:warning: initialization makes pointer from integer without a cast, 但在执行时出现 S

32位与64位系统的不同点

设计的初衷不同 64位操作系统的设计初衷是:满足机械设计和分析.三维动画.视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求,简单说就是64位操作系统是为专业用户专业软件而设计的,而32位系统是为普通用户设计的. 要求配置不同 64位操作系统只能安装在64位电脑上,即CPU必须是64位的,同时需要安装64位常用软件以发挥最佳性能.32位操作系统可以安装在32位或64位电脑上,但是32位操作系统安装在64位电脑上显然不能充分发挥64位硬件的性能. 运算速度不同