0

我在 C 代码中使用了 strsep(),但我得到了这个错误。

在此处输入图像描述

void    get_token()
{ 
    char    *token;
    char    *stringp;
    int n = 1;

    stringp = buf;

    while( stringp != NULL )
    {
            token = strsep(&stringp, "\t\n");
            switch(n) {
            case 1 : strcpy(label, token);
            case 2 : strcpy(opcode, token);
            case 3 : strcpy(operand, token);
            } n++;
    }
}

这是我的代码,我像这样使用 strsep() 。我不知道错误所说的 int。我认为 strsep() return char*。

4

1 回答 1

3

您正在使用未在 中声明的strsep()实现<string.h>

后果是;

  1. 编译器假定strsep()返回int(因此第一个警告)
  2. 链接器 ( ld) 未找到strsep()链接中包含的库中命名的函数(因此出现有关strsep()未被 解决的错误ld)。

发生这种情况的原因是它strsep()不是标准 C 库的一部分。您要么需要获取包含它的库,要么需要“推出自己的”版本的strsep().

于 2015-12-20T04:05:19.993 回答