错误:预期标识符或'(''__extension__'之前'

时间:2011-11-05 14:05:19

标签: c gcc compiler-errors

尝试编译代码库中的一个文件时,我遇到一个奇怪的编译时错误消息。

这个错误更加奇怪的是它只会在我在发布模式下构建时发生 - 它在调试模式下编译没有任何问题。

以下是违规文件的(整个)内容:

#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;
}

我正在使用Uccntu 10.0.4上的gcc(Ubuntu 4.4.3-4ubuntu5)4.4.3进行编译

有谁知道我收到此错误的原因?

1 个答案:

答案 0 :(得分:3)

您不能使用名称strtok_r作为函数名,因为它已经在string.h库中。如果您使用strtok_rrr或其他内容,则编译正常。