一个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 年了,为什么编译器还没检查出这种问题?

posted on 2025-03-21 18:44  ahfuzhang  阅读(23)  评论(0)    收藏  举报