我有一个头文件假设 abc.h,其中我的函数声明为:
static int function1();
我在 abc.c 中包含了这个头文件,并定义了函数并使用了它。
static int function1()
{
< function definition>
}
编译后我收到警告:
warning: function1 declared static but never defined
如何在不删除静电的情况下删除警告。谢谢。
我有一个头文件假设 abc.h,其中我的函数声明为:
static int function1();
我在 abc.c 中包含了这个头文件,并定义了函数并使用了它。
static int function1()
{
< function definition>
}
编译后我收到警告:
warning: function1 declared static but never defined
如何在不删除静电的情况下删除警告。谢谢。
静态函数可以在头文件中声明,但这会导致包含头文件的每个源文件都有自己的函数私有副本,这可能不是预期的。
你确定你没有在任何其他 .c 文件中包含abc.h文件吗?
因为将函数声明为静态,需要在包含它的所有.c 文件中定义该函数。
好的做法:在定义它们的源文件中声明静态函数(请同时提供原型),因为这是它们可见的唯一文件。
这样,函数只对该文件可见,这样的可见性问题可以减少可能的代码冲突!因此,只需在 .c 文件中提供原型和静态函数定义即可。不要在头文件中包含静态函数;.h 文件供外部使用。
重复:C 中的静态函数