Книга: Программирование для 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.

Оглавление книги

Оглавление статьи/книги

Генерация: 2.005. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз