一、前言

关于这个话题讨论的很多,观点也很多,但是我认为数据类型的大小和编译器直接相关。另外附上一个网友的回帖:

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

关于cpu和操作系统的参见以博客:

https://blog.csdn.net/wwwlyj123321/article/details/99940786

二、结论

数据类型(如int、short int、long、float等)只是语言定义里面的一个关键字,只对compiler可见,complier说它是几位就是几位,和os/cpu都没关系。这也就是为什么很多程序不用int,short,long,而是自己定义int32_t,   int16_t,   uint32_t,   ...,以后不管cpu/compiler怎么变,它只需要改改自己的typedef。

另外,确定一个数据类型所占空间的最好的方式是使用sizeof!

NOTE:

编译器的作用是根据目标硬件(即CPU)的特性将源程序编译为可在该硬件上运行的目标文件。如果一个编译器支持某32位的CPU,那么它就可以将源程序编译为可以在该CPU上运行的目标文件。

以下为转载,未做验证:

以char, short, int, long为例:

16位编译器:(Turbo C/Turbo C++) 
sizeof(char) = 1 
sizeof(short) = 2 
sizeof(float) = 4 
sizeof(double) = 8 
sizeof(int) = 2 
sizeof(long) = 4 
sizeof(long double) = 16 
sizeof(void *) = 4

32位编译器:(Visual Studio C++) 
sizeof(char) = 1 
sizeof(short) = 2 
sizeof(float) = 4 
sizeof(double) = 8 
sizeof(int) = 4 
sizeof(long) = 4 
sizeof(long long) = 8 
sizeof(void *) = 4 (表示指针类型数据长度)

64位编译器: 
sizeof(char) = 1 
sizeof(short) = 2 
sizeof(float) = 4 
sizeof(double) = 8 
sizeof(int) = 4 
sizeof(long) = 8 
sizeof(long long) = 8 
sizeof(void *) = 8

REF:

https://blog.csdn.net/bi_mang/article/details/51824290

https://zhidao.baidu.com/question/1367756973266688539.html

https://blog.csdn.net/ChenVast/article/details/77540273

数据类型的大小与编译器、cpu、操作系统的关系相关推荐

  1. 线程池大小设置和CPU核心数的关系

    文章目录 1.线程池和CPU核心数的关系 2.常见概念:CPU的核心数,CPU的线程数 3.是否使用线程池就一定比使用单线程高效呢? 1.线程池和CPU核心数的关系 一般说来,大家认为线程池的大小经验 ...

  2. 应用程序和操作系统的关系是什么

    应用程序和操作系统的关系是什么 应用程序是软件(似乎是废话,别急往后看),操作系统也是软件.cpu会将他们一视同仁,甚至,cpu不知道自己在执行的程序是操作系统还是一般应用软件,cpu只知道去cs:i ...

  3. 编译器,解释器,预编译器之间的关系

    如何理解解释器,编译器和预编译器之间的关系 解释器:将源码(刚编写好的代码称为源码)翻译成对应操作系统的计算机语言但不生成该计算机语言文件,直接展现源码所对应的功能,等下次运行时再次编译,且源码还是源 ...

  4. 信息学奥赛一本通 1017:浮点型数据类型存储空间大小 | OpenJudge NOI 1.2 02

    [题目链接] ybt 1017:浮点型数据类型存储空间大小 OpenJudge NOI 1.2 02:浮点型数据类型存储空间大小 [题目考点] 1. sizeof运算符 sizeof可以求某常量.变量 ...

  5. GPU的发展史,GPU与CPU的关系是什么?为何现在GPU越来越重要?

    GPU的发展史,GPU与CPU的关系是什么?为何现在GPU越来越重要? 导读 01 图形处理器 02 图形处理器的构成 03 计算机图形的生成原理 04 显卡的诞生 05 前GPU时代 06 多媒体时 ...

  6. Java中八种基本数据类型的大小,以及他们的封装类

    Java中八种基本数据类型的大小,以及他们的封装类 1.int是基本数据类型,Integer是int的封装类,是引用类型. int默认值是0,而Integer默认值是null, 所以Integer能区 ...

  7. Oracle 12C -- 扩展varchar2、nvarchar2、和raw数据类型的大小限制

    在12C中,varchar2,nvarchar2和raw类型从之前的4K扩展到32K 升级到12C后,参数max_string_size默认值是standard,即不改变varchar2.nvarch ...

  8. 一步步编写操作系统 40 内存分页下用户程序与操作系统的关系

    分页的第一步要准备好一个页表,我们的页表是什么样子呢?现在我们要设计一个页表啦. 设计页表其实就是设计内存布局,不过在规划内存布局之前,我们需要了解用户进程与操作系统之间的关系. 前面讲保护模式时,我 ...

  9. c#串口程序接收数据并打印_C#程序可打印各种数据类型的大小

    c#串口程序接收数据并打印 In this C# program – we are going to print size of various data types, to print size o ...

  10. 信息学奥赛一本通 1018:其他数据类型存储空间大小 | OpenJudge NOI 1.2 03

    [题目链接] ybt 1018:其他数据类型存储空间大小 OpenJudge NOI 1.2 03:其他基本数据类型存储空间大小 [题目考点] sizeof运算符 sizeof可以求某常量.变量或类型 ...

最新文章

  1. 3.8 注意力模型-深度学习第五课《序列模型》-Stanford吴恩达教授
  2. jap和java有关系吗_hibernate与jpa有什么区别和联系?
  3. 求字符串的最长回文字串 O(n)
  4. Hadoop较全面的概述
  5. wps中将文档输出为pdf_‎
  6. tomcat-9.0.20部署的问题及性能监控
  7. 融云联合ofo给大家送福利!
  8. lol服务器位置2017,LOL甜心宝贝的琴音和弦2017抽皮肤网页地址
  9. java constants_Java Constants类代码示例
  10. js 格式化prettier配置_Prettier 代码格式化插件 -- 配置翻译
  11. 钉钉扫码登录二维码错乱
  12. 如何用迅捷PDF转换器获取PDF文件中的图片
  13. 准大二生的暑期自学安排
  14. uniapp 添加地图标记点
  15. WIFI共享精灵 2013 电脑共享wifi
  16. dmidecode服务器型号,linux dmidecode查看服务器硬件信息
  17. 如何建立一套完整的DCS系统?
  18. Azure - AD B2C自定义策略和身份体验框架
  19. C语言:L1-039 古风排版 (20 分)
  20. usb_cam相机标定实践 ROS

热门文章

  1. 微信小程序-tempfilePath、cloudPath、fileID到底是个什么东西
  2. 转 从我写程序那天起:我就没打算写程序
  3. 2021年全球混凝土振动器收入大约337.3百万美元,预计2028年达到456百万美元
  4. teensy 制作键盘 linux,利用Arduino快速制作Teensy BadUSB
  5. 受疫情影响,全国多地影院密钥暂停供给,《长津湖》将面临改档
  6. Python+lxml+selenium爬虫-爬取豆瓣电影网电影信息
  7. SpringBoot 整合 RabbitMQ 项目实操
  8. 谁将成为未来SSD主流接口?
  9. 基于java的智能手表_Java智能图表类库JChartLib使用介绍
  10. [附源码]Python计算机毕业设计儿童救助系统Django(程序+LW)