Предупреждения Eclipse C++

Недавно я отформатировал свой компьютер и переустановил Ubuntu и Eclipse. Впоследствии, когда я открыл проект C++, в котором не было ни предупреждений, ни ошибок, Eclipse теперь показывает мне некоторые предупреждения, которых я никогда раньше не видел, например:

Macro definition can be replaced with constexpr expression

а также

Un- or ill-initialized variable found

Скриншот: введите здесь описание изображения

Что означают эти предупреждения и почему они перечислены? Их не было до того, как я переустановил Ubuntu и Eclipse...

Спасибо!


person Henrique Ferrolho    schedule 21.05.2014    source источник
comment
Вероятно, вы установили новую версию gcc при переустановке Ubuntu, которая сообщает о дополнительных предупреждениях.   -  person jasal    schedule 21.05.2014


Ответы (1)


Macro definition can be replaced with constexpr expression

Это означает, что вы использовали макрос препроцессора для определения константы. Вы должны заменить это константным выражением C++, т.е. заменить #define PI 3.141 на const double PI = 3.141;.

Un- or ill-initialized variable found

Это в значительной степени самоочевидно. Всегда инициализируйте свои переменные, иначе вы получите неопределенное поведение.

Причина, по которой появляется предупреждение, вероятно, заключается в том, что новая установленная вами версия Ubuntu поставляется с более новой версией GCC, которая выдает больше предупреждений, чем предыдущая. Другим объяснением может быть то, что вы используете другие параметры компилятора, чем раньше, например -Wall.

person jasal    schedule 21.05.2014
comment
на самом деле вы были правы насчет первого типа предупреждений: я использовал некоторые #defines. но я понятия не имею о другом предупреждении... вот скриншот. Я правильно их инициализирую... - person Henrique Ferrolho; 21.05.2014
comment
Ваш код, кажется, в порядке. Это предупреждение генерируется встроенным статическим анализом кода Eclipse, который в данном случае явно дает сбой. Перейдите в Window › Preferences › C/C++ › Code Analysis и отключите там предупреждение. - person jasal; 22.05.2014
comment
Я только что проверил, какие предупреждения я активировал в своих настройках Eclipse, но нигде не нашел этого конкретного предупреждения. Какую версию CDT вы используете? Также может быть, что это пользовательское предупреждение, которое кто-то добавил в ваши настройки. - person jasal; 22.05.2014
comment
CDT 8.3, а вот скриншот параметров анализа кода на моем eclipse - person Henrique Ferrolho; 23.05.2014
comment
Я никогда раньше не видел этого конкретного предупреждения. Я подозреваю, что это настраиваемое правило анализа кода, которое предоставляется плагином. - person jasal; 23.05.2014