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