如何清理C中的隐式函数声明?
我对功能声明有一个问题: 我在b.c.中声明了一个函数如何清理C中的隐式函数声明?,c,function,C,Function,我对功能声明有一个问题: 我在b.c.中声明了一个函数 //b.c void getNumber(); //common header common.h 在交流中,我是这样使用的: //a、 c 但是它抱怨getNumber是函数的隐式声明,原因是什么?在common.h void getNumber(); b.c文件应该以这种方式包含函数定义 void getNumber() { .... } 将以下行添加到common.h void getNumber(); b.c文件应该
//b.c
void getNumber();
//common header
common.h
在交流中,我是这样使用的:
//a、 c
但是它抱怨getNumber是函数的隐式声明,原因是什么?在
common.h
void getNumber();
b.c文件应该以这种方式包含函数定义
void getNumber() {
....
}
将以下行添加到
common.h
void getNumber();
b.c文件应该以这种方式包含函数定义
void getNumber() {
....
}
在使用函数之前,需要先声明或定义函数 如果您的声明
void getNumber()代码>在第一次使用后被编译器读取(void getInfo()
),您将得到警告警告:函数“getNumber”的隐式声明
。这是因为编译器在void getInfo()
中第一次遇到getNumber
时必须猜测其返回类型,因此出现警告。我认为这就是您正在做的,即使您的示例代码没有这样显示
如果您的void getNumber()编译器首先读取了代码>,不会出现任何警告
把你的函数声明放在一个头文件中,像这样是一个好主意。在使用函数之前,请确保在getInfo()
之前先包含“common.h”
如果您的声明void getNumber()代码>在第一次使用后被编译器读取(void getInfo()
),您将得到警告警告:函数“getNumber”的隐式声明
。这是因为编译器在void getInfo()
中第一次遇到getNumber
时必须猜测其返回类型,因此出现警告。我认为这就是您正在做的,即使您的示例代码没有这样显示
如果您的void getNumber()编译器首先读取了代码>,不会出现任何警告
把你的函数声明放在一个头文件中,像这样是一个好主意。在你的getInfo()
之前,确保首先包含“common.h”
,你应该将声明放入common.h
,而不是b.c
,void foo()
不是原型,你应该使用void foo(void)
来代替。你应该将声明放入common.h
,notintob.c
void foo()
不是原型,您应该使用void foo(void)
。