(C99) empty __VA_ARGS__
Rok Papež
rok.papez at lugos.si
Thu May 15 23:44:14 CEST 2003
Zivjo!
Dne četrtek 15. maj 2003 23:27 je Rok Papež napisal(a):
> Tezava nastopi, ko recimo poklicem:
> STR_DEBUG("Preprosta napaka!\n");
> tedaj se makro prevede v:
> do {
> printf(stderr, "Preprosta napaka!\n",);
> } while(0)
Hehe.. nashel :) Google is my friend ;).
Uporabish ##__VA_ARGS__ :)))
Drugace pa tu pise:
http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/n868.htm
da je problem znan in je proposed feature, da se uporabi __VA_COMMA__ ali
__VA_SEP__. Kar pa v GCCju zal (se) ne obstaja.
----------------------------------
Stari makro:
> #define STR_DEBUG(fmt, ...) \
> do { \
> printf(stderr, fmt, __VA_ARGS__); \
> } while(0)
Popravljeni makro:
#define STR_DEBUG(fmt, ...) \
do { \
printf(stderr, fmt, ##__VA_ARGS__); \
} while(0)
--
best regards,
Rok Papež.
More information about the lugos-org
mailing list