(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