Содержание
- 2. Компілятор контролює тільки обов’язкові фактичні параметри, типи яких відомі, а кількість і типи неоголошених параметрів не
- 3. Визначаються – вказівник з типом va_list для звертання до необов’язкових параметрів і три макроси: va_start, va_arg,
- 4. Перед викликом va_arg значення ap повинне бути встановлене викликом va_start або va_arg. Кожний виклик va_arg переводить
- 6. Скачать презентацию
Слайд 2
Компілятор контролює тільки обов’язкові фактичні
параметри, типи яких відомі, а
Компілятор контролює тільки обов’язкові фактичні
параметри, типи яких відомі, а
кількість і типи
неоголошених параметрів не перевіряє.
Прикладами бібліотечних функцій зі змінною кількістю
параметрів є функції printf () та scanf () .
Реалізація функцій з неоголошеними параметрами
базується на механізмі взаємодії фактичних і формальних
параметрів через стек. Схема запису в стек значень
фактичних параметрів визначається системою
програмування. Бібліотека С містить спеціальні функції-
макроси, задекларовані в заголовному файлі для
доступу до неоголошених параметрів, незалежно від
конкретної програмно-апаратної організації збереження
параметрів.
неоголошених параметрів не перевіряє.
Прикладами бібліотечних функцій зі змінною кількістю
параметрів є функції printf () та scanf () .
Реалізація функцій з неоголошеними параметрами
базується на механізмі взаємодії фактичних і формальних
параметрів через стек. Схема запису в стек значень
фактичних параметрів визначається системою
програмування. Бібліотека С містить спеціальні функції-
макроси, задекларовані в заголовному файлі
доступу до неоголошених параметрів, незалежно від
конкретної програмно-апаратної організації збереження
параметрів.
Слайд 3
Визначаються – вказівник з типом va_list для звертання
до необов’язкових
Визначаються – вказівник з типом va_list для звертання
до необов’язкових
параметрів і три макроси: va_start,
va_arg, va_end.
Макрос va_start має синтаксис:
void va_start ( va_list ap, lastfix);
Цей макрос починає роботу зі списком, встановлюючи
його покажчик ap на перший неоголошений параметр.
Другим аргументом вказується ім’я останнього з
обов’язкових параметрів.
Макрос va_arg має синтаксис:
void va_arg ( va_list ap, type); Цей макрос повертає значення наступного (чергового)
аргументу зі списку. Другий аргумент задає тип поточного
неоголошеного параметра.
va_arg, va_end.
Макрос va_start має синтаксис:
void va_start ( va_list ap, lastfix);
Цей макрос починає роботу зі списком, встановлюючи
його покажчик ap на перший неоголошений параметр.
Другим аргументом вказується ім’я останнього з
обов’язкових параметрів.
Макрос va_arg має синтаксис:
void va_arg ( va_list ap, type); Цей макрос повертає значення наступного (чергового)
аргументу зі списку. Другий аргумент задає тип поточного
неоголошеного параметра.
Слайд 4
Перед викликом va_arg значення ap повинне бути
встановлене викликом va_start або
Перед викликом va_arg значення ap повинне бути
встановлене викликом va_start або
va_arg.
Кожний виклик va_arg переводить покажчик на наступний
аргумент.
Макрос va_end має синтаксис:
void va_end ( va_list ap );
Даний макрос завершує роботу зі списком, звільняючи
пам'ять.
Приклад.
#include
#include
void sum (char *msg, ...)
{
int total = 0; va_list ap;
Кожний виклик va_arg переводить покажчик на наступний
аргумент.
Макрос va_end має синтаксис:
void va_end ( va_list ap );
Даний макрос завершує роботу зі списком, звільняючи
пам'ять.
Приклад.
#include
int total = 0; va_list ap;
- Предыдущая
Этап на компьютер Следующая -
sl part