У меня есть следующая программа:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char *tp = NULL, *cp = NULL, *next_token = NULL;
char TokenListe[] = "Hello,I Am,1";
tp = strtok_s(TokenListe, ", ", &next_token);
printf(tp);
return 0;
}
Когда я компилирую его с помощью Visual Studio 2015, он компилируется без каких-либо предупреждений. Но когда я скомпилирую его с помощью Dev C++ 5.11, я получаю следующее предупреждение в строке 10:
[Внимание] присваивание делает указатель целым без приведения
Есть ли решение исправить это предупреждение?
strtok_s
в Visual Studio не соответствует стандарту C11strtok_s
- принимают разные параметры, отсюда и предупреждение. И в C++ вы не должны использовать массивыchar
или строковые функции C - person UnholySheep   schedule 02.03.2018implicit declaration of function 'strtok_s'
или (при связывании)undefined reference to `strtok_s'
? - person Thomas Padron-McCarthy   schedule 02.03.2018