Ошибка в __func__ - PullRequest
       31

Ошибка в __func__

1 голос
/ 22 мая 2011
#include <stdio.h>    
char* __func__ = "hello";
void myfunc(void)
{
      printf("%s\n", __func__);
}
int main()
{
  myfunc();
}

Приведенный выше фрагмент выдает ошибку: expected identifier or ‘(’ before ‘__func__’.Почему?

Ответы [ 2 ]

9 голосов
/ 22 мая 2011

Вы знаете, что __func__ является предопределенным идентификатором (по крайней мере, для C99, см. здесь для подробной информации)?Почему ты это используешь?Я предполагаю, что вы получаете ошибку в строке определения __func__, из-за этого.

0 голосов
/ 23 мая 2011

Технически поведение не определено согласно C99, потому что вы явно объявляете __func__.

J.2 Неопределенное поведение
Поведение не определено в следующих обстоятельствах:

...

Идентификатор __func__ явно объявлен (6.4.2.2).

И известно, что неопределенное поведение означает, что все может произойти [и это включает ошибку компиляцииа также]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...