Язык программирования C


Функции


В языке "C" функции эквивалентны подпрограммам или функциям в фортране или процедурам в PL/1, паскале и т.д. функции дают удобный способ заключения некоторой части вычислений в черный ящик, который в дальнейшем можно использовать, не интересуясь его внутренним содержанием. Использование функций является фактически единственным способом справиться с потенциальной сложностью больших программ. Если функции организованы должным образом, то можно игнорировать то, как делается работа; достаточно знание того, что делается. Язык "C" разработан таким образом, чтобы сделать использование функций легким, удобным и эффективным. Вам будут часто встречаться функции длиной всего в несколько строчек, вызываемые только один раз, и они используются только потому, что это проясняет некоторую часть программы.

До сих пор мы использовали только предоставленные нам функции типа printf, getchar и putchar; теперь пора написать несколько наших собственных. так как в "C" нет операции возведения в степень, подобной операции ** в фортране или PL/1, давайте проиллюстрируем механику определения функции на примере функции power(m,n), возводящей целое m в целую положительную степень n. Так значение power(2,5) равно 32. Конечно, эта функция не выполняет всей работы операции **, поскольку она действует только с положительными степенями небольших чисел, но лучше не создавать дополнительных затруднений, смешивая несколько различных вопросов.

Ниже приводится функция power и использующая ее основная программа, так что вы можете видеть целиком всю структуру.

main() /* test power function */ { int i;

for(i = 0; i < 10; ++i) printf("%d %d %d\n",i,power(2,i),power(-3,i)); }

power(x,n) /* raise x n-th power; n > 0 */ int x,n; { int i, p; p = 1; for (i =1; i <= n; ++i) p = p * x; return (p); } Все функции имеют одинаковый вид: имя (список аргументов, если они имеются) описание аргументов, если они имеются { описания операторы }

Эти функции могут быть записаны в любом порядке и находиться в одном или двух исходных файлах. Конечно, если исходная программа размещается в двух файлах, вам придется дать больше указаний при компиляции и загрузке, чем если бы она находилась в одном, но это дело операционной системы, а не атрибут языка. В данный момент, для того чтобы все полученные сведения о прогоне "C" - программ, не изменились в дальнейшем, мы будем предполагать, что обе функции находятся в одном и том же файле.

функция power вызывается дважды в строке

printf("%d %d %d\n",i,power(2,i),power(-3,i));




Начало  Назад  Вперед