это мой вопрос. У меня Gcc 4.4.1, и этой функции нет, я установил версии 4.3 и 4.5 с тем же результатом: - /
Я знаю, что эта функция не является стандартом C-ANSI, но Я не писал код, и мне нужно скомпилировать его в моем дистрибутиве. У моего друга была такая же версия компилятора в Fedora, и Gcc компилируется без проблем (используя stdio.h и stdlib.h).
Так что, если кто-то может сказать мне, если функция есть / не доступна в моем компиляторе ... Я был бы благодарен.
Привет.
кстати: это моя версия gcc:
:~$ gcc -v
Using built-in specs.
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.4.4-14ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5
Похоже, что это не определено в 4.4.4, но если вам не нужны радиусы, кроме 10
char *itoa(long i, char* s, int dummy_radix) {
sprintf(s, "%ld", i);
return s;
}
Быстрая и грязная (и проверенная) замена. ]
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) < 0) /* записываем знак */
n = -n; /* делаем n положительным числом */
i = 0;
do { /* генерируем цифры в обратном порядке */
s[i++] = n % 10 + '0'; /* берем следующую цифру */
} while ((n /= 10) > 0); /* удаляем */
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
}
И если вам нужна обратная функция:
#include <string.h>
/* reverse: переворачиваем строку s на месте */
void reverse(char s[])
{
int i, j;
char c;
for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
Я получил эту реализацию из русской Википедии.