这两种定义方法有什么不同呢?该如何解决

这两种定义方法有什么不同呢?在文件b.c中包含a.h头文件,并调用function()函数方法一:在a.c中实现在a.h中声

这两种定义方法有什么不同呢?
在文件b.c中包含   a.h头文件,并调用function()函数

方法一:

在a.c中实现       在a.h中声明
------------------------------------
a.c:
void   function(void)
{
        ...
}

a.h:
void   function(void)
-----------------------------------------

方法二:

在a.c中声明并实现   并在a.h中以extern声明
------------------------------
a.c:
void   function(void);

void   function(void)
{
        ...
}

a.h:
extern   void   function(void)
-----------------------------------
这两种方法有何区别?


[解决办法]
我认为你的第二种写法是正确的。我觉得有两种正确的选择。

1. 你的第二种写法。

2. 如果函数的实现比较小。你可以把声明和定义都写在.h中, 并且inline它。