ОШИБКА: невозможно найти числовой литеральный оператор ‘operator & quot; & quot; U’?

Я использую компилятор ARM v7 g ++ на Vivado и SDK 2017.4. У меня был тот же код, работающий без проблем, но теперь он выдает эту ошибку после изменения чего-то, что, по-видимому, не связано с этим. Я отменил изменения, но они все еще жалуются.

../../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

Откуда это?

-2

Решение

U недопустимо в конце литерала с плавающей точкой. Допустимые суффиксы f или же F указать float, l или же L указать long doubleи без суффикса по умолчанию double, U Отображать unsigned может использоваться только в конце целочисленного литерала.

Так 1e+08U не действует, потому что 1e+08 это синтаксис для литерала с плавающей точкой. Экспоненциальная запись не может быть использована для целых чисел. Если вы хотите unsigned long целое число, напишите 100000000UL,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]