gcc-2.96: pasting would not give a valid preprocessing token
Matej Cizek
clawn na volny.cz
Sobota Listopad 25 19:32:33 CET 2000
On Fri, 24 Nov 2000, Míla Kuchta wrote:
> GCC verze 2.96 mi hazi:
> warning: pasting would not give a valid preprocessing token
>
> pri volani makra s promennym poctem parametru.
>
> #define message(string, args...) printf("program: " string, ##args)
>
> O co go?
Musi se to napsat jako:
#define message(string, args...) printf("program: " string , ##args)
Cili pridat mezeru pred ', ##args', pokud se totiz to makro rozviji s
nulovym poctem parametru v 'args', tak by preprocesor mel pri rozvijeni
makra smazat tu carku pred ##args, ale on smaze cely slovo, cili skupinu
nemezer, pred '##args'.
V puvodnim zneni by se makro pri nulovym poctu parametru rozvinulo na:
'printf("program: ")' a preprocesor by se jen divil, kam se mu ztratilo to
'string'.
Starsi verze gcc hlasej error jen pri pouziti s nulovym poctem
parametru.
-- Matej Cizek ---------------------------------------------------
Project Manager: "How long will it take you to make that change?"
Programmer: "How long does it take to catch a fish?"
------------------------------------------------------------------
Další informace o konferenci Linux