函数itoa的隐式声明在c99中无效

函数itoa的隐式声明在c99中无效,c,C,当我尝试使用函数itoa()时,我得到警告: 函数的隐式声明在c99中无效 我已经在标题中包含了stdlib.h。我试图在函数内部调用此函数,我不确定是否允许这样做。问题是itoa()不是标准函数 您应该看一下哪些为您提供了一些替代实现通常用于替代itoa的替代方案是sprintf/snprintf。这些都是stdio.h@maxflow的一部分:你在哪里声明了itoa?@CharlesBailey我试过在main和函数中声明itoa,我得到了相同的错误。只要你在使用它之前声明它,你就不应该得到

当我尝试使用函数
itoa()
时,我得到警告:

函数的隐式声明在c99中无效

我已经在标题中包含了stdlib.h。我试图在函数内部调用此函数,我不确定是否允许这样做。

问题是itoa()不是标准函数


您应该看一下哪些为您提供了一些替代实现

通常用于替代
itoa
的替代方案是
sprintf
/
snprintf
。这些都是
stdio.h

@maxflow的一部分:你在哪里声明了
itoa
?@CharlesBailey我试过在main和函数中声明itoa,我得到了相同的错误。只要你在使用它之前声明它,你就不应该得到你发布的错误。请发布代码。他的问题是链接器可以使用itoa,但没有c定义。声明char*itoa(int,char*,int);应该能解决问题。waynix,你什么意思?他为什么要申报呢?你的意思是,这种错误说链接器找到了符号,但它禁止他使用它,除非他声明它?在这种情况下,包含声明它的头不是更好吗?他得到的是警告,而不是错误,因此函数“存在”在编译器工具链或链接器文件中的某个位置。消除警告的一种方法是使用类似于链接中的实现。但他也可以只声明函数,问题就解决了。如果这是一个明智的选择,那是另一个问题。