C библиотека макросов - va_start ()
C стандартная библиотека - <stdarg.h>
описание
библиотека C макросаннулируются va_start (va_list ар, last_arg) аринициализируется переменная, онаva_argиva_endмакросы используются вместе.last_arg передается функции является последним известным фиксированным параметром, многоточие предыдущие параметры.
Этот макрос должен вызываться перед использованиемva_arg и va_end.
заявление
Вот va_start () макрос заявление.
void va_start(va_list ap, last_arg);
параметры
- ап - это объект типа va_list, который используется для хранения дополнительных параметров черезva_argполучить необходимую информацию.
- last_arg - последняя функция , известная под фиксированный параметр , переданный ему.
Возвращаемое значение
Не Доступно
примеров
Следующий пример демонстрирует использование макроса va_start ().
#include<stdarg.h> #include<stdio.h> int sum(int, ...); int main(void) { printf("10、20 和 30 的和 = %d\n", sum(3, 10, 20, 30) ); printf("4、20、25 和 30 的和 = %d\n", sum(4, 4, 20, 25, 30) ); return 0; } int sum(int num_args, ...) { int val = 0; va_list ap; int i; va_start(ap, num_args); for(i = 0; i < num_args; i++) { val += va_arg(ap, int); } va_end(ap); return val; }
Давайте скомпилировать и запустить эту программу, которая приведет к следующему:
10、20 和 30 的和 = 60 4、20、25 和 30 的和 = 79