警告:隐式声明函数

我用C编程,我的gcc编译器在mySedondFile.c:函数调用中给出了以下警告mySedondFile.c:

 implicit declaration of function 'func' 

函数原型在myfile.h声明为:

 void func(char*); 

函数定义在myfile.c

 void func(char*x); 

mySecondFile.c包含:

 #include "myfile.h" func("Hello"); 

我想知道为什么这会抱怨。

发出该错误是因为func尚未在您调用它的位置声明。

听起来你的头文件并不像你描述的那样。 也许有一些条件代码。 也许你有一个无法正常工作的头盔。 另一种可能性是你有一个字母大小写错误并声明函数Func但用func调用它。 很难说没有看到实际的文件,但你需要找出为什么func没有在mySecondFile.c翻译单元中声明的原因。

为了更清楚地说明这一点,以下代码:

 int main(void) { func("Hello"); return 0; } 

导致此警告:

 prog.c: In function 'main': prog.c:3: warning: implicit declaration of function 'func' 

这正如你所报道的那样。

根据您的描述,您的代码包含一个声明func的头文件。 编译器要求与您不同,您仍然可以找出未声明func原因。