我在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()
。