V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fetich
V2EX  ›  问与答

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

  •  
  •   fetich · 2015-01-08 20:20:44 +08:00 · 3152 次点击
    这是一个创建于 3612 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2015-01-09 10:33:47 +08:00
    wy315700
        1
    wy315700  
       2015-01-08 20:22:21 +08:00   ❤️ 1
    32位系统 long和int一样 都是32位

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


    所以是often same

    然后如果你要用64位的 那就用long long
    fetich
        2
    fetich  
    OP
       2015-01-08 20:29:29 +08:00
    @wy315700 哦哦,那「minimum」是不是指不同机器、不同系统对同一算术类型有不同的位数定义,但是不能小于minimum size,这样?
    chchwy
        3
    chchwy  
       2015-01-08 20:43:39 +08:00   ❤️ 1
    C++ 標準 int 只規定 16 bits 以上
    @fetich 所以你的理解沒錯.
    fetich
        4
    fetich  
    OP
       2015-01-08 20:46:29 +08:00
    @wy315700
    @chchwy
    感谢两位的解答。;-)
    Earthman
        5
    Earthman  
       2015-01-08 21:01:17 +08:00
    直接 int64_t 之类的比较好
    zeroten
        6
    zeroten  
       2015-01-08 21:39:29 +08:00
    我记得C中,short<=int<=long,具体是多少由实现决定
    xylophone21
        7
    xylophone21  
       2015-01-08 21:42:23 +08:00   ❤️ 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
       2015-01-08 22:28:35 +08:00
    @xylophone21
    讲解的很是清晰,举例很贴切,感谢。
    bdomne
        9
    bdomne  
       2015-01-08 22:29:08 +08:00
    和具体编译器有关
    最直接通过sizeof(long)、sizeof(int)、sizeof(short)
    占多少字节就知道了
    PS:sizeof是操作符,不是函数
    jyz19880823
        10
    jyz19880823  
       2015-01-09 10:33:47 +08:00
    玩 dota 的喜欢 double
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 02:15 · PVG 10:15 · LAX 18:15 · JFK 21:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.