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

2015-01-08 20:20:44 +08:00
 fetich

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」,这又是怎么回事?

3178 次点击
所在节点    问与答
10 条回复
wy315700
2015-01-08 20:22:21 +08:00
32位系统 long和int一样 都是32位

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


所以是often same

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

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

或者有公司给你开个offer说给16K以上,你想买房就要算好扣除生活费后16K够你月供。
虽然公司最终可能给你32K甚至64K,但万一他真的只给你16K呢?
fetich
2015-01-08 22:28:35 +08:00
@xylophone21
讲解的很是清晰,举例很贴切,感谢。
bdomne
2015-01-08 22:29:08 +08:00
和具体编译器有关
最直接通过sizeof(long)、sizeof(int)、sizeof(short)
占多少字节就知道了
PS:sizeof是操作符,不是函数
jyz19880823
2015-01-09 10:33:47 +08:00
玩 dota 的喜欢 double

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/160427

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX