0

我在一个文件中调用一个函数

a = fun(a,b);

我在其他文件中有该函数的#define

 #define fun fun1

我在另一个文件中定义该函数

static int fun1(int a, int b)
{
   -------------
   -------------
 }

但是编译器抱怨

'fun1' 已定义但未使用 [-Wunused-function]

编译器对此抱怨对我来说很奇怪。

4

2 回答 2

10
static int fun1(int a, int b)

static表示这个函数只能在这个文件中使用。删除并重static试。

于 2013-08-02T06:58:16.650 回答
4

你在这里有两个问题:第一个关于那个警告,因为在另一个源文件中你实际上并没有使用这个函数。第二个问题是您将函数标记为static,这意味着它将仅在该特定源文件中可用。

如果您希望能够调用在其他源文件中定义的函数(真正调用它们的翻译单元),那么您不能创建函数static

于 2013-08-02T06:58:31.647 回答