Как избавиться от предупреждения о не инициализированной переменной |
![]() |
Добавил(а) microsin |
При использовании констант с директивой PROGMEM иногда появляются предупреждения о том, что "не инициализированная переменная была размещена в области памяти программ". ../usbdrv/usbdrv.h:453:12: warning: uninitialized variable 'usbDescriptorDevice' put into program memory area [-Wuninitialized] Пример кода, на который будет выдаваться такое предупреждение: extern PROGMEM const char usbDescriptorDevice[]; Причина в том, что в командной строке компилятора -GCC была использована либо опция -Wall, либо опция -Wuninitialized: CFLAGS += -Wall -gdwarf-2 -DF_CPU=16000000UL -Os -fsigned-char Опция -Wall включает предупреждения о не инициализированных переменных (-Wuninitialized), и также о не используемых переменных (-Wunused). Таким образом, нужно изменить makefile так, чтобы -Wuninitialized не использовалась, тогда предупреждение исчезнет: #CFLAGS += -Wall -gdwarf-2 -DF_CPU=16000000UL -Os -fsigned-char
CFLAGS += -Wunused -gdwarf-2 -DF_CPU=16000000UL -Os -fsigned-char [Ссылки] 1. Options to Request or Suppress Warnings site:delorie.com. |