Int MyFunction(int some Value, float SameFloat);
Вызов функции имеет вид:
Rezult=MyFunction(12.4,4.7);
Использование функций требует что бы функция была сначала объявлена, а потом определена. Объявление функции сообщает компилятору тип возвращаемого значения, тип параметров и как функция работает, и называется прототипом функции.
Существуют три способы объявления функции:
1. можно записать протопип в файл, а потом подключить его в основную программу при помощи #include.
2. поместить прототип в файл, где используется эта функция.
3. определить функцию перед вызовом, в этом случае описание и есть объявление ( это не очень хороший стиль).
Прототип функции имеет вид:
В прототипе используется список формальных параметров.
Функции состоят из заголовка и тела. Заголовок содержит установки типа возвращаемого значения, имени и параметров функции. Параметры позволяют передавать в функцию значения.
Пример: заголовок функции складывающей два числа.
Параметр — это объвление типа данных значения, передаваемого в функцию.реальное значение, передаваемон при вызове функции называется аргументом функции.
Тело функции начинается с фигурной скобки и содержит раяд строк, за которыми следует закрывающая фигурная скобка. ( если тело функции содержит какие-то другие фигурные скобки, то они должны быть парными). Функция может возвращать значение при помощи оператора возврата.
Пример:
#include <iostream.h>
Int Add(int x, int y);
Int Add(int x,int y)
{
cout << “В Add складываются “ <<x<< “и”<<y<<”\n”;
return (x+y);
}
Int main()
{ int a,b,c;
cout <<”Введите два числа:\n”;
cin >>a;
cin >> b;
c=Add(a,b);
cout <<”a+b=”<<c<<”\n”;
Return 0;
}
Макрофункции
Иногда бывает полезно создать макроопределение с аргументами - макрофункцию. Макрофункция применяется там, где требуется произвести не очень сложные вычисления, и хороши тем, что они выполняются для любых типов данных (в отличие от обычных функций).
Однако, следует быть очень внимательным с использованием аргументов, поскольку происходит всего лишь подстановка аргумента в строку замещения, после которой, возможно, появятся синтаксические и логические ошибки (связанные с приоритетами операций).
Пример 3.
/* текст программы до обработки препроцессором */
#include<stdio.h>
#define SQUARE(x) x*x
Void main(void)
{
int y=5,rez;
printf("квадрат y равен %d\n",SQUARE(y)); printf("квадрат y+2 равен %d\n",SQUARE(y+2)); printf("частное равно %f\n",100./SQUARE(y));
}
Дата добавления: 2015-12-26; просмотров: 618;