我正在使用Visual Studio 2015,并且正在尝试使用strtok_r。出于某种原因,编译器不能识别它。Strtok_r无法解析的外部符号
这里是我的代码:http://linux.die.net/man/3/strtok_r
的功能是弃用:
#include <string.h>
#include <stdlib.h>
#include <assert.h>
char** str_split(char* a_str, const char a_delim, int * argc)
{
... some other code
if (result)
{
size_t idx = 0;
char* saveptr = a_str;
char* token = strtok_r(a_str, delim, &saveptr);
//char * token;
while (token)
{
assert(idx < count);
*(result + idx++) = strdup(token);
token = strtok_r(0, delim, &saveptr);
}
assert(idx == count - 1);
*(result + idx) = 0;
}
return result;
我有这个文件已经下?还是我犯了一个愚蠢的错误?提前谢谢你们。
MS不完全POSIX兼容。如果使用MS工具进行编程,则需要阅读[MS文档](https://msdn.microsoft.com/en-us/library/2c8d19sb.aspx),而不是Linux文档。 – kaylum
实际上,POSIX-ish系统上的strtok_r()与Windows系统上的strtok_s()相当。这种对等并不总是有效,但在这种特定情况下,它确实如此。 –