The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Макрос с переменным числом аргуметом"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Макрос с переменным числом аргуметом"
Сообщение от GJ_H137 Искать по авторуВ закладки(??) on 14-Сен-04, 16:05  (MSK)
Доброго времени суток!!!

В C можно создать функцию с переменным числом аргументов, например,
void myfunc(char *spec, ...)

А можно ли создать макрос #define, который принимал бы переменное число аргументов и вызывал функцию с тем же набором аргументов?

Заранее благодарен...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Макрос с переменным числом аргуметом"
Сообщение от kir Искать по авторуВ закладки(??) on 14-Сен-04, 16:23  (MSK)
>Доброго времени суток!!!
>
>В C можно создать функцию с переменным числом аргументов, например,
>void myfunc(char *spec, ...)
>
>А можно ли создать макрос #define, который принимал бы переменное число аргументов
>и вызывал функцию с тем же набором аргументов?
>
>Заранее благодарен...


точно непомню - давно не юзал - но точно есть -  открой документацию по GCC

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Макрос с переменным числом аргуметом"
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 14-Сен-04, 19:39  (MSK)
Для компилятора, соответствующего стандарту C99:

#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)

А GCC может ещё и так:

#define debug(format, args...) fprintf (stderr, format, args)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Макрос с переменным числом аргуметом"
Сообщение от jd Искать по авторуВ закладки(??) on 19-Сен-04, 19:38  (MSK)
>Для компилятора, соответствующего стандарту C99:
>
>#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)
>
>А GCC может ещё и так:
>
>#define debug(format, args...) fprintf (stderr, format, args)

А точнее так:
#define debug(format, args...) fprintf(stderr, format, ##args)
(так у Кернигана и Ричи вроде написано)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру