Книга: Программирование для Linux. Профессиональный подход
Листинг А.1. (hello.c) Простейшая программа
Листинг А.1. (hello.c) Простейшая программа
main() {
printf("Hello, world.n");
}
Будучи вызванным без флагов, компилятор не выдаст никаких предупреждений, хотя программа не соответствует стандарту ANSI Если же включить флаги -Wall
и -pedantic
, то обнаружатся три спорные конструкции:
% gcc -Wall -pedantic hello.c
hello.c:2: warning: return type defaults to 'int'
hello.c: In function 'main':
hello.c:3: warning: implicit declaration of function 'printf'
hello.c:4: warning: control reaches end of non-void function
Компилятор сообщает о следующих проблемах:
? не указан тип возвращаемого значения функции main()
;
? функция printf()
не объявлена, так как файл <stdio.h>
не включен в программу;
? функция main()
, которая неявно возвращает значение типа int
, не содержит инструкцию return
.
Анализ исходных текстов программы не позволяет выявить все возможные ошибки и неэффективные конструкции. В следующем разделе описываются четыре средства поиска ошибок при работе с динамической памятью. В конце приложения будет рассказано о том, как анализировать время работы программы с помощью утилиты-профайлера gprof
.
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Программа «Тайный покупатель»
- Программа Victoria
- Подпрограмма обработки прерывания
- Магическая программа, или Беспорядок по расписанию
- Что делать, если вместо русских букв в программах – непонятные символы?
- Как называется программа, которая устанавливает Windows за 5 минут?
- Программа shmget
- Какая программа позволяет создавать документы формата PDF?
- Удаляю Windows Messenger из автозапуска, но после перезагрузки программа снова запускается. С другими приложениями таког...
- При установке Windows ХР с загрузочного диска после тестирования программа установки сообщает, что не найден ни один жес...