1.3.22 Функции

       Функция – это группа операций, выполняющая законченное действие. Для работы с функцией необходимо указать прототип функции и дать ее определение.
         Вид прототипа: тип имя ([список параметров]);
Void *memcpy (void*, const void*, size_t);
int a (int,int);
        Функция возвращает указатель. Можно указывать тип без указания имен.
        После определения прототипов нужно дать описание функций:
int abc(int a, int b, int c );
{int d;
d=a+b+c;return d }
       Передача параметров внутрь функций может производиться тремя способами:
  a) по значению (наиболее применимый способ);
int abc(int a, int b);
x = abc(5,3);
x = abc(d*с, d/c);
функции передается копия значения переменной, а само значение не меняется в течение программы.
  b) по ссылке;
int cde(int & r);
r=r+1;
в данном случае в функцию передается адрес ячейки, значение которой мы можем изменить.
  c) через указатель- используется для передачи в функцию сложных объектов: многомерных массивов, строк, структур;
int cde(int*r);
*r=*r+1;
      В общем случае рекомендуется передавать входные данные по константной ссылке: abc(const int & i);
      Передача внутрь функции имени функции производится следующим образом:
typedef double(*pfun)(double, double);
      Тогда заголовок функции, в которую мы будем передавать имя, запишется так:
void print_tab(pfun fun, double xn,…..);.