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」,这又是怎么回事?
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 |
2
fetich OP @wy315700 哦哦,那「minimum」是不是指不同机器、不同系统对同一算术类型有不同的位数定义,但是不能小于minimum size,这样?
|
5
Earthman 2015-01-08 21:01:17 +08:00
直接 int64_t 之类的比较好
|
6
zeroten 2015-01-08 21:39:29 +08:00
我记得C中,short<=int<=long,具体是多少由实现决定
|
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呢? |
8
fetich OP @xylophone21
讲解的很是清晰,举例很贴切,感谢。 |
9
bdomne 2015-01-08 22:29:08 +08:00
和具体编译器有关
最直接通过sizeof(long)、sizeof(int)、sizeof(short) 占多少字节就知道了 PS:sizeof是操作符,不是函数 |
10
jyz19880823 2015-01-09 10:33:47 +08:00
玩 dota 的喜欢 double
|