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.
>