Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

{Тіло функції}

де тип– тип даних значення, яке повертається функцією у місце виклику;

ім’я функції– ідентифікатор, за допомогою якого здійснюється виклик функції;

параметр1, параметр2,…– список параметрів функції. Кожен параметр складається з типу даних та ідентифікатора, як і будь-яке оголошення змінної (наприклад: int x). Змінні які оголошені в якості параметра є локальними для даної функції. Вони приймають значення аргументів функції при виклику.

тіло функції– це блок операторів у фігурних дужках {}.

Тип кожного аргументу функції повинен відповідати типу відповідного параметра, оголошеного при визначенні функції.

Приклад 6.1.Використання стандартних функцій та функцій визначених у програмі.

#include <stdio.h>

#include <stdlib.h>

int add (int a, int b)/*визначення функції add*/

{

int q;

q=a+b;

return (q);

}

int main ()

{

int t;

t = add (7, 4);/*виклик функції add*/

printf( "Suma = %i \n", t);/*виклик функції printf з бібліотеки stdio.h*/

system("PAUSE");/*виклик функції system з бібліотеки stdlib.h*/

return 0;

}

Результат роботи програми:

На початку програми здійснюється визначення функції add. Далі здійснюється визначення функціїmain. Функціяmainпочинається з оголошення змінноїt типуint. Після цього, здійснюється виклик функціїadd. Подібність виклику та визначення функції зображено на рис. 6.1.

Рисунок 6.1 – Визначення та виклик функції

При виклику функції addу якості аргументів їй передаються два значення: 7 і 4, які відповідають параметрамint атаint b.

Значення обох аргументів при виклику (7 і 4) будуть скопійовані в локальні змінні int атаint b.

У функції addоголошується інша локальна зміннаint q, якій присвоюється результат виразуq=а+b.

Наступний рядок коду: return (q);завершує роботу функціїadd, і повертає значення у функціюmain. Програма продовжує роботу з того ж місця, в якому вона була перервана викликом функціїadd. Значення змінноїqв цей момент дорівнює 11, і воно стає значенням функції, що викликається. Потім це значення присвоюється зміннійt(рис. 6.2).

Рисунок 6.2 – Повернення значення функції

6.2 Область видимості

Видимість змінних, оголошених у функції обмежується тілом функції, тобто вони є локальними змінними функції і не можуть бути використані поза нею. Наприклад, у попередньому прикладі було б неможливо використовувати змінні a,bабоqбезпосередньо у функціїmain, так як вони є локальними змінними функціїadd. Крім того, було б неможливо використовувати зміннуtу функціїadd, так як вона є локальною змінною функціїmain.

У випадку необхідності видимості змінної, як у межах функції так і поза нею, потрібно використати глобальну змінну. Для створення глобальної змінної потрібно її оголосити поза межами функції.

Приклад 6.2.Види виклику функцій.

#include <stdio.h>

#include <stdlib.h>

int sub (int a, int b)

{

int q;

q=a-b;

return (q);

}

int main ()

{

int x=2, y=1, t;

t = sub(7, 4);

printf("First %i \n", t);

printf("Second %i \n", sub(7, 4));

printf("Third %i \n", sub (x, y));

t = 4 + sub(x, y);

printf("Fourth %i \n", t);

system("PAUSE");

return 0;

}

Результат роботи програми:

У прикладі 6.2 створена функція sub, яка повертає різницю значень аргументів. В програмі продемонстровано чотири варіанти виклику функціїsub.

Перший варіант виклику:

t = sub(7, 4);

printf("First %i \n", t);

Другий варіант виклику:

printf("Second %i \n", sub(7, 4));

У цьому варіанті функція subвикликається в якості аргументу функціїprintf.

Третій варіант виклику:

printf("Third %i \n", sub(x, y));

У цьому варіанті замість числових літералів (7, 4) в якості аргументів функції sub виступають змінніxтаy.

Четвертий варіант виклику:

t = 4 + sub(x, y);

printf("Fourth %i \n", t);

У цьому варіанті показано можливість роботи з функцією, як зі звичайною змінною такого ж типу, який повертає функція.

Соседние файлы в папке Архив WinRAR