C Ошибка: undefined ссылка на '_itoa'
Я пытаюсь преобразовать целое число в символ для записи в файл, используя эту строку:
fputc(itoa(size, tempBuffer, 10), saveFile);
и я получаю это предупреждение и сообщение:
предупреждение: неявное объявление 'itoa'
undefined ссылка на '_itoa'
Я уже включил stdlib.h и компилирую с помощью:
gcc -Wall -pedantic -ansi
Любая помощь будет оценена, спасибо.
Ответы
Ответ 1
itoa
не входит в стандарт. Я подозреваю, что -ansi
не позволяет вам использовать его или вообще не доступен.
Я бы предложил использовать sprintf()
Если вы идете по стандарту c99, вы можете использовать snprintf()
, который, конечно, безопаснее.
char buffer[12];
int i = 20;
snprintf(buffer, 12,"%d",i);
Ответ 2
Здесь сказано, что на этапе компиляции itoa
неизвестно:
предупреждение: неявное объявление 'Itoa'
поэтому, если эта функция присутствует в вашей системе, вам не хватает заголовочного файла, который ее объявляет. Затем компилятор предполагает, что это функция, которая принимает неспецифическое число аргументов и возвращает int
.
Это сообщение с фазы загрузчика
undefined ссылка на '_itoa'
объясняет, что также загрузчик не находит такую функцию в любой из библиотек, которые он знает.
Итак, вы должны, возможно, следовать совету Брайана, чтобы заменить itoa
на стандартную функцию.