Список инструментов для статического анализа кода можно найти в wikipedia .
Но предупреждения, как правило, хороши, но одна проблема с включением всех предупреждений с педантичностью и Wall - это количество предупреждений, которые вы можете получить, включая заголовки, которые вы не можете контролировать, это может создать много шума. Я предпочитаю компилировать свое собственное программное обеспечение со всеми включенными предупреждениями. Когда я программирую в Linux, я обычно делаю так:
Поместите внешние заголовки, которые мне нужно включить, в отдельный файл, и в начале этого файла перед положением включаемых файлов:
#pragma GCC system_header
А затем включите этот файл из своего кода. Это позволяет вам видеть все предупреждения из вашего собственного кода без его утопления в предупреждениях из внешнего кода. Недостатком является то, что это решение, специфичное для gcc, я не знаю ни одного независимого от платформы решения для этого.