Bueno, no es nada nuevo, pero para quien busque un código compatible para compilar en linux con GCC (ya que en windows con MingW está disponible) os dejo un código optimizado.

Podeis ver una comparativa y el código de: http://www.jb.man.ac.uk/~slowe/cpp/itoa.html

#if defined(_WIN32) && defined(_MSVC)

#else
/**
* Ansi C "itoa" based on Kernighan & Ritchie's "Ansi C"
* with slight modification to optimize for specific architecture:
*/

void strreverse(char* begin, char* end)
{
    char aux;

    while(end>begin)
        aux=*end, *end--=*begin, *begin++=aux;
}

void itoa(int value, char* str, int base)
{
    static char num[] = "0123456789abcdefghijklmnopqrstuvwxyz";
    char* wstr=str;
    int sign;

    div_t res;

    // Validate base
    if (base<2 || base>35){ *wstr=''; return; }

    // Take care of sign
    if ((sign=value) < 0)
    value = -value;

    // Conversion. Number is reversed.
    do
    {
        res = div(value,base);
        *wstr++ = num[res.rem];
    } while(value=res.quot);

    if(sign<0)
        *wstr++='-';

    *wstr='';

    // Reverse string
    strreverse(str,wstr-1);
}
#endif