我在一个文件中调用一个函数
a = fun(a,b);
我在其他文件中使用该函数的#define
#define fun fun1
我在另一个文件中定义该函数
static int fun1(int a, int b)
{
-------------
-------------
}
但编译器投诉
'fun1'已定义但未使用[-Wunused-function]
编译器对此抱怨很奇怪。
答案 0 :(得分:10)
static int fun1(int a, int b)
static
表示此功能只能在此文件中使用。移除static
,然后重试。
答案 1 :(得分:4)
这里有两个问题:第一个是关于那个警告,因为在另一个源文件中你实际上并没有使用这个函数。第二个问题是您将该函数标记为static
,这意味着它只能在该特定源文件中使用。
如果您希望能够调用其他源文件中定义的函数(实际调用它们的翻译单元),则无法创建函数static
。