51单片机用keil5编程时,为什么我在.c文件里定义一个函数时,还要在对应的.h文件里用extern定义一下函数才能使用
时间: 2024-04-05 11:29:01 浏览: 50
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?.docx
在C语言中,函数的声明和定义是分开的,函数的定义指的是函数的实现部分,而函数的声明指的是函数的原型,即函数的名称、返回类型、参数类型和参数个数等信息。在C语言中,如果一个函数在当前的.c文件中被定义,则该函数只能在该.c文件中被调用,其他的.c文件不能直接调用该函数,因为其他的.c文件并不知道该函数的存在。
为了使其他的.c文件也能够调用该函数,我们需要在该函数所在的.c文件中进行函数的声明,即在.c文件中使用extern关键字声明该函数。然后在其他的.c文件中,就可以通过#include指令包含该.c文件,并且可以使用该函数了。
而对于.h文件,它主要用于定义函数的接口和数据结构的声明,以便于在不同的.c文件中使用。因此,在.h文件中也需要进行函数的声明,以便于其他的.c文件能够使用该函数。通常情况下,我们可以把函数的声明放在.h文件中,然后在需要使用该函数的.c文件中通过#include指令包含该.h文件。这样,在编译的时候,编译器就会知道该函数的存在,从而正确地生成目标代码。
因此,对于你的问题,需要在.c文件中用extern关键字进行函数的声明,以便于其他的.c文件能够使用该函数,并且需要在对应的.h文件中进行函数的声明,以便于在不同的.c文件中使用该函数。
阅读全文