gcc-2.96: pasting would not give a valid preprocessing token

Míla Kuchta mila.kuchta na atlas.cz
Sobota Listopad 25 21:05:48 CET 2000


Matej Cizek <clawn na volny.cz> wrote:
>> #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.

Opravdu? To se mi nejak nechce verit, ale zkusil jsem to a stale ta stejna
hlaska.

S pozdravem

Mila Kuchta


Další informace o konferenci Linux