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