It is possible to use the standard C /C++ variadic args in macros, at least in gcc (EDIT: apparently they are standardized, and MS c compiler also has them).
See this page for some information on how this works.
There is also another question on this site which may be helpful for you.