Структурного програмування

В МОВІ С

Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного

Пригадаємо, що процедурне програмування полягає в розбитті програми на окремі підпрограми. Такі підпрограми технологічно реалізуються в різних мовах програмування по-різному. У мові програмування С підпрограма записується у вигляді функції. Причому це єдиний механізм опису підпрограми, на відміну від інших мов програмування, наприклад Pascal, де використовуються як функції, так і процедури. Навіть головна програма, з якої починається виконання, записується у вигляді функції. Отже, розглянемо механізм використання функцій у мові С.

Оголошення та визначення функцій

С має дві основні синтаксичні схеми визначення функцій:

а)

[<СПКП>][<спеціалізація типу>]<описувач>

(<список параметрів>)

[<список оголошень параметрів>]

{<тіло>}

Наприклад:

Static void PM21(s)

char *s;

{printf("is good students%s',s);}

б)

[<СПКП>][<спеціалізація типу>]<описувач>

(<список типів параметрів>){<тіло>}

Наприклад:

Extern float f (int a;double b;)

{

…}

Функція може повертати довільне значення, крім масиву й функції (може повернути покажчик на масив і функцію), тобто повертати структури, елементи перераховного типу тощо. Визначення функцій, що повертають значення типу int, специфічне. Такі функції не обов'язково оголошувати до їх використання. Момент першого виклику такої функції інтерпретується компілятором як оголошення з типом результуючого значення int. Значення, що повертається функцією, генерується при виконанні оператора return. При цьому обчислення значення відповідного виразу зводиться до типу результуючого значення й повертається в точку виклику функції. Якщо оператор return присутній, але жодне значення не вказується, то поведінка програми не визначена:

typedef struct {

char name [10];

int d;} people;

people SORT (people a,people b);

{

return ((a.d>b.d)?a:b);

};

Формальні та фактичні параметри

При виклику функції відбувається зведення типів фактичних параметрів до типів формальних згідно з правилами перетворення типів.

У С існує механізм передавання фактичних параметрів за значенням. Це означає, що при виконанні функції утворюються локальні копії всіх фактичних параметрів, що передаються у функцію. Для ілюстрації специфіки механізму передавання параметрів за значенням напишемо функцію, що міняє місцями дві змінні:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: