【发布时间】:2015-03-18 16:45:40
【问题描述】:
我知道有很多关于这个主题的主题,但没有一个能帮助我解决我的问题。 我在 Code::Blocks 上工作(在“属性>项目构建选项>编译器设置>其他选项”中使用选项 -std=c99)并且以下代码没有给出预期的输出:
long long val=1<<33;
printf("value: %llu",val);
实际上我在终端中获得了“值:0”。 我该如何解决这个问题?
当我写 30 而不是 33(所以 val 是一个整数)时,我得到了正确的答案。我也试过 %lld 但这没有帮助。
【问题讨论】:
-
你的编译器没有警告过吗?