63

我知道之前有人问过很多类似的问题,但我找不到可以解决这个警告的东西:

MyIntFunctions.c:19:2: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]

发生在这里:

void IntPrint (const void *key)
{
    printf("%d", *(int*)key); // line 19
    printf("\t-->\t");
}

和类似的警告:

MyStringFunctions.c:22:2: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]

void StringPrint (const void *key)
{
    printf("%s",(char*)key); //line 22
    printf("\t-->\t");
}

我真的很想了解什么是错的,所以我以后不会再这样做了。

4

3 回答 3

97

您需要包含适当的标题

#include <stdio.h>

如果您不确定标准函数在哪个标头中定义,该函数的手册页将说明这一点。

于 2012-12-28T12:00:45.763 回答
15

您需要包含printf()函数的声明。

#include <stdio.h>
于 2012-12-28T12:03:35.390 回答
3

隐含声明的警告或错误是编译器需要一个函数声明/原型..

它可能是头文件或您自己的函数声明..

于 2012-12-28T13:33:30.600 回答