Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 1.16.4 Функції із змінним числом параметрів - Програмування С, С++теорія та практика (частина 1) - Studbook
Главная->Інформатика та програмування->Содержание->1.16.4 Функції із змінним числом параметрів

Програмування С, С++теорія та практика (частина 1)

1.16.4 Функції із змінним числом параметрів

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

тип ім'я_функції(список параметрів, ...)

Список аргументів включає в себе скінченне число обов’язкових параметрів (цей список не може бути порожнім), після якого на місці невизначеного числа параметрів ставиться три крапки. Для роботи з цими параметрами у файлі кШагд/Ь визначений тип списку уа_1ііі і три макроси: уа_ііагІ, уаагд, уаепй.

Макрос уа зіаті має синтаксис :

уоіС уа_5Іагі(уа_ІІ5І ар, ІазМїх)

Цей макрос починає роботу зі списком, встановлюючи його покажчик ар на перший аргумент зі списку аргументів з невизначеним числом.

Макрос уа агд має синтаксис :

уоіС уа_агд(уа_ІІ5І ар, іуре)

Цей макрос повертає значення наступного (чергового) аргументу зі списку. Перед викликом уа агд значення ар повинне бути встановлене викликом уа зіагі або уа атд. Кожний виклик уа агд переводить покажчик на наступний аргумент.

Макрос уаепй має синтаксис :

уоіС уа_епС(уа_ІІ5І ар)

Даний макрос завершує роботу зі списком, звільняючи пам’ять.

#іпс1ийе <з,Ьгііо.Ь>

#іпс1ийе <з'Ьгіагд.Ь>

VОій. зит(сЬаг *тзд, .. .)

{

іп£ £о£а1 = 0;

Vа_1із^ ар; іп£ агд;

Vа_з^а^^(ар, тзд);

мЬі1е ((агд = Vа_а^д(ар,іп^))   ! = 0)

{

£о£а1 += агд;

}

ргіп^£(тзд, £о£а1);

Vа_епй.(ар) ;

}

іп£ таіп^оігі.)

{

зит("Сума 1+2+3+4 рівна %гі\п", 1,2,3,4,0); ге'Ьигп 0;

}

 

77