2012-12-28 84 views
32

我知道有很多類似的問題,隱含的聲明之前被要求,但我無法找到的東西,會解決這個警告,我得到:Ç - 警告:函數「printf的」

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

難道你考慮包括'' – WhozCraig

+2

請向我們展示如何包含頭文件。 –

回答

56

您需要包括相應的頭

#include <stdio.h> 

如果你不知道哪頭的標準功能定義在,函數的man page將說明這一點。

11

您需要包含printf()函數的聲明。

#include <stdio.h> 
3

警告或種類的隱式聲明的錯誤在於,編譯器期待一個函數聲明/原型..

它可能是某個頭文件或您自己的函數聲明..