C 如何可移植地将整数转换为字符串?

C 如何可移植地将整数转换为字符串?,c,portability,itoa,C,Portability,Itoa,我在寻找一种方法,以可移植的方式将整数转换为字符串(至少在Windows&Linux、x86和x86_64之间可移植),我认为itoa(X)是标准的,就像atoi(1) 但我在维基百科的条目中读到了以下内容: itoa函数是标准C编程语言的一个广泛的非标准扩展。它不能被移植使用,因为它没有在任何C语言标准中定义;然而,编译器通常在不一致模式下通过头提供它,因为它是标准库函数atoi的逻辑对应项 所以我想知道是否有任何方法可以通过便携方式实现。如果我必须编写自己的函数,我需要注意哪些事项?大多数情

我在寻找一种方法,以可移植的方式将整数转换为字符串(至少在Windows&Linux、x86和x86_64之间可移植),我认为
itoa(X)
是标准的,就像
atoi(1)

但我在维基百科的条目中读到了以下内容:

itoa函数是标准C编程语言的一个广泛的非标准扩展。它不能被移植使用,因为它没有在任何C语言标准中定义;然而,编译器通常在不一致模式下通过头提供它,因为它是标准库函数atoi的逻辑对应项


所以我想知道是否有任何方法可以通过便携方式实现。如果我必须编写自己的函数,我需要注意哪些事项?

大多数情况下,您只需使用printf(“%d”)


如果需要在缓冲区中使用sprintf,您可以使用它,但是您多久转换为字符串而不将其写入文件或输出设备?

如果您不经常这样做,那么使用一个运行时库例程将一些数字写入内存、分析结果并存储编码类型如何?从那时起,您只需打开“编码类型”来选择要使用的转换例程。

虽然itoa不是官方可移植的,但我怀疑您是否会遇到问题。如果你这样做了,这是一个非常容易编写的函数