int 类型占据多少字节?到底是跟编译器有关?还是系统来决定的?

1. CPU的设计者才不管你在上面跑什么程序.他们只是按着他们的想法来设计.
而int的大小,至少在C/C++中,标准只说可以由实现者自己定义.至于要不要按机器的字长来设计那就是编译器设计者的喜好了.除非哪天标准改成int必须是机器的字长....不过C/C++标准中抽象出来的"机器",恐怕没有字长这个概念吧.

2. 编译器,简单的说目前流行的的是32位机,但TC里的int就是16位的,流行的编译器(gcc,VC)都是32位。
另外64位机也有了,但上面的int还是可以是32位的。
与此同时,就算在32位机上,也可以做出64位的int来。
所以只要愿意,编译器能决定出int的大小,就算是8位的机器也能搞出64位的来。

3. 一个简单大家都知道的事实!
trubo C的int是2字节
vc的int是4字节

再看java编译器,无论在什么机器上,int都是那么大
所谓跟平台无关,就是跟机器和操作系统没有关系!

=====================================

且看下面: likefermat 大神的 总结:

4. 机器第一作用,编译器第二作用.
现在新出的机器开始有64位的,编译器也逐渐的要适应这个改变,由32位向64位过渡.
如果机器是16位的,编译器强制为32位的话,效率及其低下,没那家厂商会做如此SB的事情,
我们现在的机器一般都是32位的,编译器所以一般也是32位,但也支持64位的,
__int64  就是64字节的,
总之int 只是一个类型,没有太大的意义,机器的位数才是关键所在!
离开机器,说有编译器决定的人,实在不敢恭维.
难道要在8位机上实现64bit的编译器?
机器进步了,编译器跟不上,就要被淘汰,
编译器超前了,效率低下,也不会有市场,
所以不要单纯的讨论编译器或者机器了。
OVER!

int 类型 占多少字节是由什么决定的的更多相关文章

  1. Java 字节数组类型(byte[])与int类型互转

    代码如下: public class CommonUtils { //高位在前,低位在后 public static byte[] int2bytes(int num){ byte[] result ...

  2. MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题

    MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...

  3. 二进制、十六进制理解及int类型二进制存储方式

    二进制 0000 0000 0000 0000 0000 0000 0000 0001 // 2^0 0000 0000 0000 0000 0000 0000 0000 0010 // 2^1 00 ...

  4. int类型究竟占几个字节

    我最近也在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节.后来,别人查了The C Programming language这本书,里面有一句话是这样的: Ea ...

  5. 一个int类型究竟占多少个字节

    一个int占多少个字节? 这个问题我们往往得到的答案是4. 可是int究竟占多少个字节,却跟你的机器环境有关. As you can see, the typical data type sizes ...

  6. php中int类型在不同平台所占不同字节数理解

    1.在不同平台上占字节数与最大值 在32位平台上int占4个字节,在64位平台上int占8个字节,PHP_INT_SIZE 在32位平台上int的最大值2^31 - 1,在64位平台上int最大值2^ ...

  7. 一int考虑什么类型的多少字节

    一int表示的字节数? 问题是,我们经常得到的答案4. 但int究竟占多少个字节,却跟你的机器环境有关. As you can see, the typical data type sizes mat ...

  8. C++ string类型占几个字节

          在C语言中我们操作字符串肯定用到的是指针或者数组,这样相对来说对字符串的处理还是比较麻烦的,好在C++中提供了 string 类型的支持,让我们在处理字符串时方便了许多.这篇文章并不是讲解 ...

  9. java中boolean类型占几个字节

    java的基本数据类型中,boolean只有两种状态,默认值为false.取值范围是{true,false},理论上占1bit,实际上: 1.单个的boolean 类型变量在编译的时候是使用的int ...

随机推荐

  1. oj 中G++和C++区别(转)

    1.输出double类型时,如果采用G++提交,scanf采用%lf,prinf采用%f,否则会报错 2.使用GCC/G++的提醒: 对于64位整数, long long int 和 __int64 ...

  2. 2013 ACM 通化邀请赛D.D-City 并查集

    点击打开链接 D.D-City Description Luxer is a really bad guy. He destroys everything he met. One day Luxer ...

  3. java流布局管理器

    public class FlowLayoutPosition extends JFrame{    public FlowLayoutPosition()    {        setTitle( ...

  4. elasticsearch开启脚本及使用

    开启script: Scripting settingsedit The script.disable_dynamic node setting has been replaced by fine-g ...

  5. threading event

    #!usr/bin/env python 2 #coding: utf-8 3 #Author: Andy 4 5 import threading 6 import time 7 8 def pro ...

  6. 1307: City Tour

    1307: City Tour Time Limit: 1 Sec  Memory Limit: 128 MB [Submit][Status][Web Board] Description Alic ...

  7. SQL Server int类型值最大2147483647(2^31 - 1)

    突发奇想,一个字增字段,假设每天增加1000条记录,多少年之后写不进int类型的字段了2147483647 / 1000 / 365 = 5883.51684109589041095890410958 ...

  8. Android开发-API指南-Intent和Intent过滤器

    Intents and Intent Filters 英文原文:http://developer.android.com/guide/components/intents-filters.html 采 ...

  9. 慕课网-安卓工程师初养成-3-3 Java中的赋值运算符

    来源:http://www.imooc.com/code/1298 赋值运算符是指为变量或常量指定数值的符号.如可以使用 “=” 将右边的表达式结果赋给左边的操作数. Java 支持的常用赋值运算符, ...

  10. tornado框架之路一

    Web 服务器 每个页面都以 HTML 的形式传送到你的浏览器中,HTML 是一种浏览器用来描述页面内容和结构的语言.那些负责发送 HTML 到浏览器的应用称之为“Web 服务器”,会让你迷惑的是,这 ...