Головна Головна -> Реферати українською -> Інформатика, комп'ютери, програмування -> Функції зі змінним числом параметрів. Командна стрічка, параметри функції MAIN

Функції зі змінним числом параметрів. Командна стрічка, параметри функції MAIN

Назва:
Функції зі змінним числом параметрів. Командна стрічка, параметри функції MAIN
Тип:
Реферат
Мова:
Українська
Розмiр:
14,13 KB
Завантажень:
37
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2 
1. ФУНКЦІЇ ЗІ ЗМІННИМ ЧИСЛОМ ПАРАМЕТРІВ

У С/C++ поряд з використанням функцій з фіксованим числом параметрів можна використовувати функції зі змінним числом параметрів, тобто функції, у які можна передавати дані, не описуючи їх у прототипі й заголовку функції. Описи цих даних заміняються трьома крапками. У таких функціях може перебувати й постійний параметр (ознака), за допомогою якого можуть зчитуватися дані. Якщо у функції є кілька постійних параметрів, то спочатку перераховуються ці параметри, а потім ставляться три крапки. Зверніть увагу, при передачі у функцію додаткових аргументів, компіляторові не відомо, який тип змінних буде використаний у функції для їхньої обробки. Тому контроль типів, приведення аргументів до типу параметрів не відбувається. Необхідні перетворення повинен передбачити програміст. Дані в стек поміщаються відповідно до типу, який використовується при виклику функції. В C++ повинен бути хоча б один фіксований параметр.

Можливість передачі змінного списку параметрів залежить від способу запису аргументів функції в стек програми й способу очищення стека від параметрів. У С/С++ параметри записуються в стек з кінця списку параметрів (якщо не зазначений модифікатор pascal) і звільняє стек викликаюча функція. Таким чином, якщо є виклик функції fl(xl,x2,x3);, то аргументи xl, х2, х3 занесуться в стек програми в такий спосіб:

Вершина стека - sp3 | х1 - молодші адреси

sp2 | х2

sp1 | х3 -старші адреси.

У мові Паскаль стек від параметрів звільняє викликаючий модуль. У зв'язку з цим список параметрів повинен бути відомий заздалегідь і мати фіксовану довжину. Аргументи в стек поміщаються в порядку їхнього проходження;

Вершина стека - sp3 | х3 - молодші адреси

sp2 | х2

sp1 | х1 -старші адреси.

Відзначимо, що мова С допускає і паскалівский спосіб передачі аргументів у функцію.

Рекомендуються два способи завдання довжини змінного списку параметрів:

- пересилання у функцію числа аргументів;

- завдання ознаки кінця списку аргументів.

Наприклад: f2(5,xl,x2,x3,x4,x5); - тут зазначене число аргументів - 5; f3( xl,x2,x3,x4,0); - тут зазначена ознака кінця списку - 0.

Зауважимо, що копії даних типу char передаються у функцію (стек) як іnt, a float - як double. Реалізувати функції зі змінним числом параметрів можна трьома способами:

- використовуючи вказівник без типу, наприклад: voіd *pv;

- використовуючи вказівник, що відповідає типу змінних списку параметрів, наприклад:

іnt *pі; double *pd;

- використовуючи вказівник, визначений самою системою програмування. У бібліотеці С є стандартні макроси для роботи зі списком змінної довжини, які описані в розділі бібліотеки stdarg.h. Таких макросів є чотири: va_lіst, va_start, va_arg, va_end.

Приклад оголошення й виклику функції:

іnt func (іnt, ...); - прототип функції зі змінним числом параметрів, що має один постійний параметр і повертає число типу іnt.

іnt func(int k, ...){…}; - структура функції зі змінним числом параметрів, що має один постійний параметр і повертає число типу іnt.

y=func(k,a,b,c); - виклик функції зі змінним числом параметрів, що має один постійний параметр k і три змінних параметри a, b, c і повертає число типу (іnt).

2. КОМАНДНИЙ РЯДОК. ПАРАМЕТРИ ФУНКЦІЇ MAІN ()

Автори мови С передбачили можливість передачі аргументів головному модулю запущеної на виконання програми - функції maіn (), за допомогою використання командного рядка. Аргументи командного рядка - це текст, записаний після імені запущеного на виконання *.com або *.ехе файлу, або переданий програмі за допомогою опції інтегрованого середовища С - arguments. За аргументи доцільно передавати імена файлів, функцій, текст, що задає режим роботи програми, а також самі дані (числа).

Borland С підтримує три параметри функції maіn(). Для їхнього позначення рекомендується використовувати загальноприйняті імена argc, argv, envp (але не забороняється використовувати будь-які інші імена). Вхід у функцію maіn при використанні командного рядка має вигляд:

іnt maіn(іnt argc, char *argv[], char *envp[])

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

або:

іnt maіn (іnt argc, char **argv, char **envp)

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

Перший параметр (argc) повідомляє функції кількість переданих у командному рядку аргументів, враховуючи як перший аргумент ім'я самої виконуваної програми (тобто кількість слів, розділених пробілами). Звідси слідує, що кількість параметрів не може бути менше одиниці, тому що перший аргумент - ім'я програми з повним шляхом до неї є присутнім завжди.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2 



Реферат на тему: Функції зі змінним числом параметрів. Командна стрічка, параметри функції MAIN

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок