我在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*我想。

最佳答案

您使用的实现在strsep()中未声明<string.h>
后果是;
编译器假设strsep()返回int(因此是第一个警告)
链接器(ld)在链接中包含的库中找不到名为strsep()的函数(因此strsep()无法解决有关ld的错误)。
出现这种情况的原因是strsep()不是标准C库的一部分。您要么需要获得一个包含它的库,要么“滚动您自己”版本的strsep()

09-19 00:57