problem with macro expansion in GCC

Alexandre Oliva
Tue Feb 6 12:35:00 GMT 2001

On Feb  6, 2001, Dhanabal Ekambaram <> wrote:

> #define XXX(N)  N.ptr

> XXX(y) gets transformed to " y.ptr" instead of "y.ptr".

That's to prevent unwanted token pasting, if XXX(y) happens to be
preceded by something that might be seem like the same token.  This
would unlikely be the case for this particular macro, but how is the
preprocessor to know that?

In any case, the extra space shouldn't be a problem for you; the
compiler will simply discard it.

Alexandre Oliva   Enjoy Guarana', see
Red Hat GCC Developer                  aoliva@{,}
CS PhD student at IC-Unicamp        oliva@{,}
Free Software Evangelist    *Please* write to mailing lists, not to me

More information about the Gcc-help mailing list