博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
64位系统/32位系统下/8位CPU的数据宽度
阅读量:5907 次
发布时间:2019-06-19

本文共 1117 字,大约阅读时间需要 3 分钟。

不同的编译器根据不同的 64 位模型有所不同。 比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 long 和指针是 64 位,int 保持 32 位不变。
可以运行下代码得到结果。 #include 
int main() {
printf("char: %d\n",sizeof(char)); printf("char *: %d\n",sizeof(char *)); printf("short: %d\n",sizeof(short)); printf("short *: %d\n",sizeof(short *)); printf("int: %d\n",sizeof(int)); printf("int *: %d\n",sizeof(int *)); printf("long: %d\n",sizeof(long)); printf("long *: %d\n",sizeof(long *)); } 在一台x86_64系统上运行结果: char: 1 char *: 8 short: 2 short *: 8 int: 4 int *: 8 long: 8 long *: 8 在一台i386系统上运行结果: char: 1 char *: 4 short: 2 short *: 4 int: 4 int *: 4 long: 4 long *: 4 在32位中,short=2 int=long=4 在64位中,short=2,int=4,long=8
in cc2530, a 8051 mcu:sizeof int = 2sizeof short = 2 sizeof char* = 2sizeof long = 4sizeof float = 4sizeof double = 4
1. 指针类型表示的是内存寻址范围,所以在32位系统,8 * 4 = 32,而64位系统 8 * 8 = 64;这个是没错的; 2. C99标准规定:sizeof(short) <= sizeof(int) <= sizeof(long). http://zhidao.baidu.com/link?url=wrvmVbgFV-yPVAq_6O5O8Kf27QCvyCsPYjts7Z1zVXAxDBAS0RhrdM_Y-jiutPMmRgQWkByUwJ2HBMr-rvZP-_

转载地址:http://ivcpx.baihongyu.com/

你可能感兴趣的文章
Switchover and Failover说明
查看>>
linux 环境RPM 安装MYSQL5.6
查看>>
Linux文件管理和编辑常用命令
查看>>
bluz-5.47 蓝牙
查看>>
C++ 读写文件
查看>>
海外旅游最常用的100句英语口语
查看>>
http协议进阶(五)连接管理
查看>>
服务器创建好后怎样使用远程连接工具链接的一些问题
查看>>
插件~NuGet与packages管理项目的包包
查看>>
笔试算法题(34):从数字序列中寻找仅出现一次的数字 & 最大公约数(GCD)问题...
查看>>
JS基本功 | JavaScript专题之数组 - 方法总结
查看>>
matlab数字图像处理函数,MATLAB数字图像处理学习(二)|常用函数
查看>>
错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...
查看>>
小米笔记本装linux教程视频教程,Archlinux安装指南~小米笔记本Air 13.3英寸版本
查看>>
linux卸载nomachine,NoMachine 安装与配置及使用
查看>>
企业shell常见面试题及企业实战案例深入浅出讲解
查看>>
Load Test
查看>>
美文共赏
查看>>
RHEL6入门系列之十七,打包与压缩
查看>>
SQLite 3.7.13的加密解密(二)—— 开放宏定义
查看>>