zoukankan      html  css  js  c++  java
  • int 类型 占多少字节是由什么决定的

    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!

  • 相关阅读:
    Geometry
    后缀数组dc3算法模版(待补)
    CodeForces 467D(267Div2-D)Fedor and Essay (排序+dfs)
    HDU 3572 Task Schedule (最大流)
    Acdream手速赛7
    hdu2732 Leapin' Lizards (网络流dinic)
    HDU 3549 Flow Problem (最大流ISAP)
    HDU 1532 Drainage Ditches (网络流)
    [容易]合并排序数组 II
    [容易]搜索插入位置
  • 原文地址:https://www.cnblogs.com/minggeqiuzhi/p/3835883.html
Copyright © 2011-2022 走看看