On 7/25/05, Denis Zaitsev <[EMAIL PROTECTED]> wrote:
> Such an example can't be compiled:
> 
> 
> #include <stdio.h>
> 
> void x()
> {
>     printf(__FUNCTION__ "\n");
> }
> 
> 
> $ gcc printf.c -o fprintf
> printf.c: In function `x':
> printf.c:5: error: syntax error before string constant

__FUNCTION__ expands to a variable.  Use

 printf("%s\n", __FUNCTION__);

instead.  Btw, this list is for the development _of_ gcc, not with gcc.
Use gcc-help for that.

Richard.

> 
> Then, the problem is not printf-specific and is not depend of
> <stdio.h>.  The next example gives the same error:
> 
> 
> void y(const char *f, ...);
> void z()
> {
>     y(__FUNCTION__ "\n");
> }
> 
> 
> If some args are present in the ellipsis section (i.e. y(__FUNCTION__
> ": %s\n", "xxx")), the problem doesn't vanish.  And, if __FILE__ is
> used instead of __FUNCTION__, the problem is absent.
>

Reply via email to