读书人

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

发布时间: 2012-03-11 18:15:38 作者: rapoo

这两种定义方法有什么不同呢?
在文件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它。

读书人网 >C语言

热点推荐