一个c语言的坑:直接写个常量表达式,最终的值却是 0
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
const uint64_t max_video_size = 1024 * 1024 * 1024 * 100;
上面的常量的值居然是 0 !!!
如果想要不是 0, 可以改成下面的写法:
const uint64_t max_video_size = (uint64_t)1024 * 1024 * 1024 * 100;
const uint64_t max_video_size = 1024L * 1024 * 1024 * 100;
猜测是编译器默认整形常量都是 int32 的。
这都 5202 年了,为什么编译器还没检查出这种问题?

浙公网安备 33010602011771号