Страницы

Поиск по вопросам

среда, 25 декабря 2019 г.

Как в C объявить функцию с переменным числом аргументов?

#c


Функция printf может принимать разное количество аргументов. Например:
printf("Hello!\n");

или
printf("Hello, %s!\n", "world");

Как это делается?    


Ответы

Ответ 1



Есть стандартный заголовок , который позволяют объявлять подобные функции. #include void _printf(char *format, ...) { va_list argp; va_start(argp, format); printf(format, argp); va_end(argp); }

Ответ 2



#include #include /* calculate sum of a 0 terminated list */ int sum(int i, ...) { va_list ap; int arg; int total = i; va_start(ap,i); while ((arg = va_arg(ap,int)) != 0) { total += arg; } va_end(ap); return total; } int main(void) { printf("The total of 1+2+3+4 is %d\n",sum( 1,2,3,4,0)); return 0; }

Комментариев нет:

Отправить комментарий