Аргументи функції. Зовнішні змінні

Главная » Каталог статей » Статьи на украинском » Програмування » Аргументи функції. Зовнішні змінні

Передаються по значенню, тобто ф-я, що викликана отримує свою тимчасову копію кожного аргумента, а не його адресу, це означає, що викликана ф-я не може викликати на вих. аргумент в ф-ї, що викликається. В ф-ї кожен аргумент є локальною змінною, яка ініціалізована тим значенням з яким до цієї ф-ї звернулися. Якщо в якості аргумента виступає ім’я масиву, а самі елементи не копіюються ф-я може змінювати елементи масиву, використовуючи індексацію і адресу початку. В мові Сі не можна написати ф-ю з довільною кількістю аргументів, тобто не існує механізму, який би дозволив створити ф-ю, яка мала б 3 або 10 змінне число аргументів, вони визначені завчасно.

Наприклад, для того щоб скопіювати з одного диску на інший є проста процедура copy-sv.exe.X, аргум. є диск Х, тоді Copy-sv.exe X

Main ( int argc, char argv[ ] ) /*int argc — службовий аргумент передачі кільк. Аргум. у ф-ї */

Print (“%s”arcv[1])

Зовнішні змінні

Для того, щоб використати змінні вони повинні бути визначені до того, як вони використ., але не обов’язково в початку програми. Визначення змінної викликає виділення пам’яті для її збереження. Клас пам’яті, що виділяється визначає специфікатор класу пам’яті і визначає час життя і область видимості змінної, пов’язаної з поняттям блоку програми.

Блоком є послідовність об’явлень, визначень та операторів, що розмішені в фігурних дужках.

Розрізняють 2 типи блоків

- складений оператор

- визначення ф-ї

Час життя – це інтервал часу виконання програми під час якого об’єкт існує. Час життя змінної може бути локальним або глобальним.

Глобальна змінна може бути доступна з моменту її визначення до кінця програми, локальна змінна дотупна тільки в ф-ї або блоці в якому вона визначена, при кожному входжені в блок, виконується визначення лок. змінної і розподіл пам’яті для неї. Всі ф-ї в мові Сі мають глобальний час життя.

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

Клас пам’яті Специфікаторів є 4:

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

Register — представляє з себе ненав’язливе прохання до компілятора про розмішення значень об’єктів в одному з доступних регістрів, а не в локальній пам’яті.

Static – в Сі цей специфікатор має 2 значення: 1-й – визначений об’єкт розмішується по фіксованій адресі, тобто сам об’єкт і дані які він зберігає існують з моменту визначення до кінця програми; 2-й – об’єкт об’являє специфікатор static є локальним в одному програмному модулі.

Extern — специфікатор забезпечує існування об’єкту з моменту його визначення і до кінця програми, доступний в усіх модулях програми.

Оставьте комментарий к статье