ошибка: ожидаемый идентификатор или ‘(’ до ‘__extension__’ - PullRequest
2 голосов
/ 05 ноября 2011

У меня появляется странное сообщение об ошибке времени компиляции при попытке скомпилировать один из файлов в моей кодовой базе.

Что делает эту ошибку более странной, так это то, что она возникает только при сборке в режиме выпуска -без проблем компилируется в режиме отладки.

Ниже приведено (все) содержимое файла-нарушителя:

#include <string.h>

char * strtok_r(char *s, const char *delim, char **save_ptr)
{
  char *token;

  if (s == NULL)
    s = *save_ptr;

  s += strspn (s, delim);
  if (*s == '\0')
    return NULL;

  token = s;
  s = strpbrk (token, delim);
  if (s == NULL)
    *save_ptr = strchr (token, '\0');
  else
    {
      *s = '\0';
      *save_ptr = s + 1;
    }
  return token;
}

Я собираю с помощью gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 в Ubuntu 10.0.4

Кто-нибудь знает, почему я получаю эту ошибку?

1 Ответ

3 голосов
/ 05 ноября 2011

Вы не можете использовать имя strtok_r в качестве имени функции, так как оно уже находится в библиотеке string.h. Компилируется нормально, если вы используете strtok_rrr или что-то еще.

...