当前位置:C++技术网 > 资讯 > Linux编程:11 itoa函数未定义标识符

Linux编程:11 itoa函数未定义标识符

更新时间:2017-03-06 17:59:30浏览次数:1+次

    在Linux中编程发现提示itoa是未定义的标识符。按照在Windows的编程习惯,我们以为是头文件忘了包含,或者包含错误了头文件。然而,我试了stdio.h和stdlib.h都没有用。
    后来发现linux头文件根本就没有提供itoa函数。itoa不是标准C语言库函数,而是非标准的扩展函数。所以并不是所有的编译器都会支持的。这不就遇见了GCC4.8.5不支持这个函数了。只不过,VC编译器在stdlib中包含了这个函数。
    itoa这样的小函数,非常的实用,没有提供在标准库函数里,有点遗憾。
    当然,想实现这个也是太容易的事情,只是多了点代码而已。下面就是简单的实现:
string itoa(int num)
{
    char buf[100]={0};
    sprintf(buf,"%d",num);
    return string(buf);
}

    我们这里就不用char*指针,因为内部分别的数组,在函数结束时内存会释放。返回的指针指向一个被释放的内存是违规的内存操作。而使用string可以以传值的形式返回内容,没有问题。当然只要是传值都行。如果是传指针的话,那数组还得是你传进来的。不过传数组地址进来,函数使用也就不那么方便了。
    本文主要是对Linux的GCC没有支持itoa函数做一个记录,以免以后忘记了找半天,也供大家了解一下。