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

roc*_*ddy 0 c

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

a = fun(a,b);
Run Code Online (Sandbox Code Playgroud)

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

 #define fun fun1
Run Code Online (Sandbox Code Playgroud)

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

static int fun1(int a, int b)
{
   -------------
   -------------
 }
Run Code Online (Sandbox Code Playgroud)

但编译器投诉

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

编译器对此抱怨很奇怪.

Yu *_*Hao 10

static int fun1(int a, int b)
Run Code Online (Sandbox Code Playgroud)

static表示此功能只能在此文件中使用.删除并重static试.

  • @rock_buddy回到开头,`static`表示该函数只能在此文件中使用,因此其他文件无法看到它,因此不会生成多重定义错误.但是把它放在标题中的问题是,其他文件包括标题也会有函数的定义,但是它们不需要它.这就是你首先得到警告的原因. (2认同)