繁体   English   中英

如何在C中清除函数的隐式声明?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM