今天开发的一个bug搞了好久也没看懂,最后觉得应该是编译器的问题
定义了一个变量
const static unsigned long long overSize = 1024 * 1024 * 1024 *4; NSLog(@"%llu", overSize);
你猜输出是多少,本来打算是定一个一个4G的数字,结果出来是0,我想不通了,64位啊,无符号啊,2的64次方减1啊,怎么4G都表示不了
然后换一种写法
unsigned long long overSize = 1024 * 1024 * 1024; unsigned long long overSize4 = overSize * 4; NSLog(@"%llu", overSize4);
这样就能正常输出大小了,这个东西应该是编译器的bug吧