错误:无法找到数字文字运算符'运算符"" U'?

时间:2018-01-29 20:20:34

标签: c++ xilinx vivado zynq

我在Vivado和SDK 2017.4上使用ARM v7 g ++编译器。我有相同的代码工作没有任何问题,但现在它是在改变与此无关的东西之后抛出这个错误,显然。我已经撤消了这些修改,但它仍然抱怨。

../../MicroZed_design9_bsp/ps7_cortexa9_0/include/xparameters.h:557:40: error: unable to find numeric literal operator 'operator""U'
#define XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ 1e+08U

这是从哪里来的?

1 个答案:

答案 0 :(得分:2)

U在浮点文字的末尾无效。有效后缀为fF,表示floatlL表示long double,无后缀默认为{ {1}}。 double表示U只能在整数文字的末尾使用。

因此unsigned无效,因为1e+08U是浮点文字的语法。指数表示法不能用于整数。如果您想要1e+08整数,请写unsigned long