我正在使用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()相當。這種對等並不總是有效,但在這種特定情況下,它確實如此。 –