Результат работы программы
Пример программы
Пример объявления функции модуля числа
Прототипы функций
В практике программирования бывают случаи, когда тело функции располагается в программе ниже функции её вызывающей или функция вообще компилируетсятся отдельно. В этом случае до использования функции должен быть указан прототип функции (или объявление функции), содержащий: а) тип функции, б) имя функции и в) информацию о параметрах.
Прототип необходим для того, чтобы кампилятор смог осуществить проверку соответствия типов передаваемых фактических параметров типам формальных параметров. Объявление функции имеет тот же вид, что и определение функции, однако тело функции отсутствует, и имена формальных параметров также могут отсутствовать.
int abs(int); int abs(int i);
Если прототип не задан, то он будет построен по умолчанию на основе первой ссылки на функцию. Такой прототип не всегда может быть согласован с последующим определением или вызовом функции.
Рекомендуется всегда указывать прототип. Это позволяет кампилятору выдавать диагностичесие сообщения при неправильном использовании функции, либо корректировать несоответствие аргументов при выполнении программы.
При программировании на языке Си широко используются библиотечные функции. Эти функции были предварительно разработаны и записаны в состав системы программирования. Прототипы библиотечных функций находятся в специальных заголовочных файлах с расширением h (head), которые необходимо подключать с помощью директивы Mnclude.
Рассмотрим пример программы генерации таблицы чисел 2й.
#include <stdio.h> | ||
int power(int base; int index); | ||
/* int | power(int, int); - второй вариант | объявления |
функции | power().*/ | |
main () | ||
{ | ||
int | i; | |
for | ( i=0; i <= 10; i++ ) | |
{ | printf("%d, ", power(2,i)); | |
} | ||
} | ||
int power(int base; int index) | ||
{ | ||
int | if p; | |
p=l | r | |
for | ( i=0; i <= 10; i++ ) | |
{ | p = p * base; | |
} | ||
return (p); | ||
} |
1, 2, 4, 8, 16, 32, 64, 128, 252, 504,
Схема программы представлена на рис. 1.2.
( начало 1