«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Какие флаги предупреждений g++ следует использовать для тщательного анализа кода C++?

Какие флаги предупреждений g++ следует использовать для тщательного анализа кода C++?

Опубликовано 22 декабря 2024 г.
Просматривать:885

What g   Warning Flags Should I Use for Thorough C   Code Analysis?

Подробные и подробные флаги предупреждений для компиляций C с g

Gcc предоставляет полный набор флагов предупреждений, помогающих разработчикам обнаруживать потенциальные проблемы в их код. Чтобы включить подробные и подробные предупреждения в C , рассмотрите следующие рекомендации:

Основные предупреждения:

  • -педантично: придерживайтесь строгих правил Стандарты языка C.
  • -Wall: активировать все общепринятые предупреждения.
  • -Wextra: расширить область предупреждения за пределы -Wall.
  • -Wcast-align: обнаружить невыровненные приведения указателя.
  • -Wcast-qual: предупреждать об изменениях типа указателя. квалификаторы.
  • -Wctor-dtor-privacy: выделите проблемы с модификаторами доступа к конструктору класса и деструктору.
  • -Wdisabled-optimization: определите код это можно оптимизировать, но нет.
  • -Wformat=2: Улучшена обработка спецификаторов формата во время компиляции.
  • -Winit-self: запретить повторную инициализацию переменных.
  • -Wologic-op: обнаружить потенциальные проблемы с приоритетом операторов.
  • -Wmissing-declarations: предупреждать об отсутствующих объявлениях переменные и функции.
  • -Wmissing-include-dirs: выделите отсутствующие каталоги включения.
  • -WnoException: поощряйте механизмы обработки исключений.
  • -Wold-style-cast: определение потенциальной совместимости кода. проблемы.
  • -Woverloaded-virtual: предупреждать о перегрузках виртуальных методов.
  • -Wredundant-decls: указывать на избыточные объявления.
  • -Wshadow: предотвращение непреднамеренного затенения переменные.
  • -Wsign-conversion: обнаружение возможных ошибок преобразования знаков.
  • -Wsign-promo: выявление потенциальных проблем с продвижением знаков.
  • -Wstrict-null-sentinel: повышение безопасности кода за счет контроля нулевого дозорного. значения.
  • -Wstrict-overflow=5: Ограничьте уровень целочисленного переполнения пятью предупреждениями.
  • -Wswitch-default: Обеспечьте всестороннее обработка оператора переключения.
  • -Wundef: предупреждение о неопределенных переменных или макросы.
  • -Wno-unused: исключает предупреждения о неиспользуемых переменных, чтобы сосредоточить внимание на более важных проблемах.

Необязательные, но сомнительные предупреждения:

  • -Wdisabled-optimization: может указывать неоптимальный код, но не обязательно ошибка.
  • -Wfloat-equal: потенциально вызывает ложные срабатывания для безопасного сравнения на равенство.
  • -Wold-style-cast : могут иметь ложные срабатывания в сторонних библиотеки.
  • -Wsign-conversion: требует пристального внимания к типам данных во избежание ошибок.
  • -Wsign-promo: те же соображения, что и - Wsign-conversion.
  • -Wswitch-default: обеспечивает явную обработку случаев оператора переключения, но может быть утомительным.

Предупреждения, которые следует исключить:

Эти предупреждения опущены из-за потенциальных ложных срабатываний или ограниченной полезности:

  • -Ваби: требуется компиляция двоичных файлов из различных источники.
  • -Waggregate-return: может указывать на неявные преобразования типов данных.
  • -Wconversion: может генерировать предупреждения для безобидных неявных преобразований.
  • -Weffc : можно загромождать несвязанными предупреждения.
  • -Winline: может применяться не во всех сценариях встроенных методов.
  • -Winvalid-pch: не применяется к проектам, не используйте предварительно скомпилированные заголовки.
  • -Wmissing-format-attribute: Требуются редко используемые расширения GNU.
  • -Wpadded: требуется ручная оптимизация макетов классов.
  • -Wstack-protector: требуются определенные флаги компилятора. для защиты стека.
  • -Wstrict-aliasing=3: Предлагает ограниченное количество дополнительных предупреждений по сравнению с более низкими уровнями.
  • -Wswitch-enum: слишком строгие ограничения и могут подходить не для всех случаев использования.
  • -Wunsafe- оптимизация цикла: в определенных сценариях может генерировать ложные предупреждения.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3