我在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
这是从哪里来的?
答案 0 :(得分:2)
U
在浮点文字的末尾无效。有效后缀为f
或F
,表示float
,l
或L
表示long double
,无后缀默认为{ {1}}。 double
表示U
只能在整数文字的末尾使用。
因此unsigned
无效,因为1e+08U
是浮点文字的语法。指数表示法不能用于整数。如果您想要1e+08
整数,请写unsigned long
。