Latest web development tutorials
×

C курс

C Язык учебника C Краткое введение C параметры окружающей среды C Структура программы C Базовый синтаксис C Типы данных C переменная C постоянная C Storage Class C операторы C судья C циркуляция C функция C Обзорное правила C массив C указатель C строка C структура C союз C поле Bit C typedef C Входной и Выходной C грамотность документов C препроцессор C заголовок C Слепки C Обработка ошибок C Рекурсия C Переменный параметр C Управление памятью C Параметры командной строки C Классические 100 случаев

C Стандартная библиотека

C Стандартная библиотека - справочное руководство C Стандартная библиотека - <assert.h> C Стандартная библиотека - <ctype.h> C Стандартная библиотека - <errno.h> C Стандартная библиотека - <float.h> C Стандартная библиотека - <limits.h> C Стандартная библиотека - <locale.h> C Стандартная библиотека - <math.h> C Стандартная библиотека - <setjmp.h> C Стандартная библиотека - <signal.h> C Стандартная библиотека - <stdarg.h> C Стандартная библиотека - <stddef.h> C Стандартная библиотека - <stdio.h> C Стандартная библиотека - <stdlib.h> C Стандартная библиотека - <string.h> C Стандартная библиотека - <time.h>

C библиотека макросов - va_arg ()

C стандартная библиотека - <stdarg.h> C стандартная библиотека - <stdarg.h>

описание

библиотека Cтип макроса va_arg (va_list ар, тип)список параметров Следующий параметр функции поискатипа типа.Она не может определить, найденный параметр, является ли последний параметр функции.

заявление

Вот va_arg () макрос заявление.

type va_arg(va_list ap, type)

параметры

  • ап - это объект типа va_list,хранит информацию о дополнительных параметрах и получить состояние. Этот объект должен быть перед первым вызовом va_arg инициализируется вызовом va_start.
  • Тип - это имя типа.Имя типа, как расширение типа от макро выражения использовать.

Возвращаемое значение

Этот макрос возвращает следующий дополнительный параметр типа представляет собой тип выражения.

примеров

Следующий пример демонстрирует использование макроса va_arg ().

#include <stdarg.h>
#include <stdio.h>

int sum(int, ...);

int main()
{
   printf("15 和 56 的和 = %d\n",  sum(2, 15, 56) );
   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;
}

Давайте скомпилировать и запустить эту программу, которая приведет к следующему:

15 和 56 的和 = 71

C стандартная библиотека - <stdarg.h> C стандартная библиотека - <stdarg.h>