在我的程序中,splint检查程序警告:
expat-test.c:23:1: Function exported but not used outside expat-test: start
A declaration is exported, but not used outside this module. Declaration can
use static qualifier. (Use -exportlocal to inhibit warning)
expat-test.c:38:1: Definition of start
使用start()函数。该程序使用expatXML解析器处理回调。给解析器一个函数:
XML_SetElementHandler(parser, start, end);
解析器会在某些时候调用它。这是C语言中非常常见的一个成语,我想知道splint为什么抱怨。我在FAQ或manual中找不到任何东西。
最佳答案
您是否在定义了XML_SetElementHandler()
的同一翻译单元(通常是.c源文件)中调用start()
?如果是这样,则警告可能是正确的:将static
添加到函数定义,并检查应用程序是否仍然链接无误。
关于c - 当函数作为参数传递时处理有关“未使用”功能的夹板警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/411726/