我有一个头文件假设abc.h,其中我有函数声明为:
static int function1();
我已将此头文件包含在abc.c中并定义了该函数并使用了它。
static int function1() { }
编译后我收到警告:
warning: function1 declared static but never defined
如何在不删除静电的情况下删除警告。 谢谢。
可以在头文件中声明静态函数,但这会导致包含头文件的每个源文件都拥有自己的函数私有副本,这可能与预期的不同。
你确定你没有将abc.h文件包含在任何其他.c文件中吗?
因为将函数声明为静态,所以需要在包含它的所有 .c文件中定义函数。
好的做法:在他们定义的源文件中声明静态函数(请同时提供原型),因为这是他们可见的唯一文件。
这样,该function仅对该文件可见,这种可见性问题可以减少可能的代码冲突! 因此,只需在.c文件中提供原型和静态函数定义。 不要在头文件中包含静态函数; .h文件用于外部消费。
重复: C中的静态函数
需要了解更多c/c++开发分享函数声明为static但从未定义过,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享函数声明为static但从未定义过相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979983.html