Книга: Программирование для Linux. Профессиональный подход
А.1. Статический анализ программы
А.1. Статический анализ программы
Некоторые программные ошибки можно выявить, воспользовавшись средствами статического анализа исходных текстов. Если вызвать компилятор gcc
с флагами -Wall
и -pedantic
, он выдаст предупреждения о рискованных и потенциально ошибочных программных конструкциях. Исправив эти конструкции, вы снизите вероятность появления в программе скрытых ошибок, а также упростите компиляцию программы в других вариантах Linux или даже в других операционных системах.
С помощью различных флагов командной строки можно заставить компилятор gcc
выдавать предупреждения о множестве спорных программных конструкций. Большинство проверок включается флагом -Wall
. Например, компилятор будет сообщать о комментарии, начинающемся в другом комментарии, о неправильном типе возвращаемого значении в функции main()
, о функциях, в которых пропущена инструкция return
, и т.д. При наличии флага -pedantic
компилятор будет выдавать предупреждения о несоответствии стандарту ANSI. В частности, будет сообщаться о наличии функции asm()
и других GNU-расширений языка. В документации к компилятору не рекомендуется использовать этот флаг. Мы же советуем избегать большинства GNU-расширений, так как они имеют тенденцию меняться со временем и плохо поддаются оптимизации.
Попробуем скомпилировать программу "Hello, World", представленную в листинге А.1.
- Анализ программы
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- 2.5. Разработка технического задания на проведение детального анализа рынка при работе над инновационным проектом. Основ...
- 9.1. Проблема синтаксического анализа
- 2.12.2. Анализ усилительных каскадов в области малых времен
- 1.2.5. Пример программы
- 24.7. Использование программы-твикера
- Глава 5. Разработка и анализ бизнес-планов в системе Project Expert
- 4.4.3.3. План-фактный анализ продаж
- Часть III Прикладные программы
- Цикл создания программы