我有一个头文件假设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
如何删除警报,而不删除静态的。 谢谢。
静态函数可以在头文件中声明,但是这会导致,包括头文件具有的功能,这可能不是想要的结果的自己的私人副本中的源文件。
是U确保ü没有包含在任何其他.c文件的abc.h文件?
因为声明一个函数为静态的,因此必须在它被包含的所有 .c文件(一个或多个)被定义的功能。
良好做法:声明静态函数只在定义它的源文件中(请提供样机),因为这是他们在唯一可见的文件。
这样一来,该功能仅在该文件中看到,这种可见性问题可以减少可能的代码冲突! 所以,只需要提供样机,并在.c文件中的静态函数定义。 不包括在头文件中的静态函数; .h文件是外部消费。
复制: 用C静态函数