fetich
V2EX  ›  问与答

刚开始看《C++ Primer》,有句话不理解。。。

  •  
  •   fetich · Jan 8, 2015 · 3810 views
    This topic created in 4168 days ago, the information mentioned may be changed or developed.

    If your data values are larger than the minimum guaranteed size of an int, then use long long.

    这句话中的「minimun」如何理解,还有书中的表中所列short int 16bit, int 16bit, long int 32bit, 可是书上又出现了「long often has the same size as int」,这又是怎么回事?

    10 replies    2015-01-09 10:33:47 +08:00
    wy315700
        1
    wy315700  
       Jan 8, 2015   ❤️ 1
    32位系统 long和int一样 都是32位

    Linux下 64位的时候 long是64位,int是32位
    windows两个都是32位


    所以是often same

    然后如果你要用64位的 那就用long long
    fetich
        2
    fetich  
    OP
       Jan 8, 2015
    @wy315700 哦哦,那「minimum」是不是指不同机器、不同系统对同一算术类型有不同的位数定义,但是不能小于minimum size,这样?
    chchwy
        3
    chchwy  
       Jan 8, 2015   ❤️ 1
    C++ 標準 int 只規定 16 bits 以上
    @fetich 所以你的理解沒錯.
    fetich
        4
    fetich  
    OP
       Jan 8, 2015
    @wy315700
    @chchwy
    感谢两位的解答。;-)
    Earthman
        5
    Earthman  
       Jan 8, 2015
    直接 int64_t 之类的比较好
    zeroten
        6
    zeroten  
       Jan 8, 2015
    我记得C中,short<=int<=long,具体是多少由实现决定
    xylophone21
        7
    xylophone21  
       Jan 8, 2015   ❤️ 1
    minimum guaranteed size
    直译过来就是
    有保障的最小大小

    比如int,按规定最小是16,但有些平台是16有些是32有些是64.
    这个16就是minimum guaranteed size。
    为了保证你代码的兼容性,你就只能当他是16用,超过了就只有用long long才有保障了。

    或者有公司给你开个offer说给16K以上,你想买房就要算好扣除生活费后16K够你月供。
    虽然公司最终可能给你32K甚至64K,但万一他真的只给你16K呢?
    fetich
        8
    fetich  
    OP
       Jan 8, 2015
    @xylophone21
    讲解的很是清晰,举例很贴切,感谢。
    bdomne
        9
    bdomne  
       Jan 8, 2015
    和具体编译器有关
    最直接通过sizeof(long)、sizeof(int)、sizeof(short)
    占多少字节就知道了
    PS:sizeof是操作符,不是函数
    jyz19880823
        10
    jyz19880823  
       Jan 9, 2015
    玩 dota 的喜欢 double
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6169 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 03:03 · PVG 11:03 · LAX 20:03 · JFK 23:03
    ♥ Do have faith in what you're doing.