如何过度定义但未使用的警告乐趣

时间:2013-08-02 06:56:26

标签: c

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

a = fun(a,b);

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

 #define fun fun1

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

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

但编译器投诉

  

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

编译器对此抱怨很奇怪。

2 个答案:

答案 0 :(得分:10)

static int fun1(int a, int b)

static表示此功能只能在此文件中使用。移除static,然后重试。

答案 1 :(得分:4)

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

如果您希望能够调用其他源文件中定义的函数(实际调用它们的翻译单元),则无法创建函数static