[英]how to clean the implicit declaration of function in C?
我对函数声明有疑问:
我在BC中声明了一个函数
//b.c
void getNumber();
//common header
common.h
在ac中,我这样使用它:// ac
#include "common.h"
void getInfo()
{
getNumber();
}
但是它抱怨getNumber是函数的隐式声明,这是什么原因?
common.h
添加到common.h
void getNumber();
bc文件应以这种方式包含函数定义
void getNumber() {
....
}
您需要先声明或定义函数,然后再使用它。
如果您的声明void getNumber();
如果在第一次使用编译器( void getInfo()
)后被读取,则会收到警告warning: implicit declaration of function 'getNumber'
。 发生这种情况的原因是,编译器在void getInfo()
首次遇到getNumber
时必须猜测其返回类型-因此出现警告。 我认为这是您正在执行的操作,即使您的示例代码没有那样显示。
如果您的void getNumber();
首先由编译器读取,不会发生警告。
最好将函数声明放在头文件中。 确保在getInfo()
之前先include "common.h"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.