我想做的是定义一个常量等于2^30(我可能会将其更改为类似于2^34的东西,因此我更喜欢具有大于32位的空间)。以下最小(?)示例为什么无法编译?
#include <stdint.h>
// test.cpp:4:33: error: expected primary-expression before numeric constant
// test.cpp:4:33: error: expected ')' before numeric constant
const uint64_t test = (uint64_t 1) << 30;
//const uint64_t test1 = (uint64_t(1)) << 30;// this one magically compiles! why?
int main() { return 0; }