65

I know alot of similar questions were asked before but i couldn't find something that would fix this warning i get:

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

Occurs here:

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

and a similar warning:

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");
}

I really want to understand what is wrong so i won't do that again in the future.

Tom
  • 8,775
  • 24
  • 84
  • 144

4 Answers4

100

You need to include the appropriate header

#include <stdio.h>

If you're not sure which header a standard function is defined in, the function's man page will state this.

simonc
  • 40,917
  • 12
  • 82
  • 102
16

You need to include a declaration of the printf() function.

#include <stdio.h>
Pang
  • 9,073
  • 146
  • 84
  • 117
oleg_g
  • 502
  • 3
  • 7
3

the warning or error of kind IMPLICIT DECLARATION is that the compiler is expecting a Function Declaration/Prototype..

It might either be a header file or your own function Declaration..

Raghu Srikanth Reddy
  • 2,673
  • 33
  • 28
  • 41
0

warning: incompatible implicit declaration of built-in function 'printf'

warning: incompatible implicit declaration of built-in function 'scanf'

the above warnings of compiler says that there is need to include declaration of printf and scanf i.e. include appropriate header

#include <stdio.h>
alexpdev
  • 2,395
  • 2
  • 6
  • 20