c - 函数声明为静态但从未定义

标签 c gcc-warning

我有一个头文件假设是 abc.h,其中我的函数声明为:

static int function1();

我已经在abc.c中包含了这个头文件,并且定义了函数并使用了它。

static int function1()
{
 < function definition>
}

编译后我收到警告:

warning: function1 declared static but never defined

如何在不删除静态的情况下删除警告。 谢谢。

最佳答案

静态函数可以在头文件中声明,但这会导致包含头文件的每个源文件都有其自己的函数私有(private)副本,这可能不是预期的。

你确定你没有在任何其他 .c 文件中包含 abc.h 文件吗?

因为将函数声明为静态函数,需要在包含它的所有 .c 文件中定义该函数。

关于c - 函数声明为静态但从未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15681442/

相关文章:

c - 确定作为二进制字符串给出的类型的大小的有效方法是什么?

c# - 读取蓝牙信号强度

c - GCC 编译器警告 : format ‘%c’ expects argument of type ‘char *’ , 但参数 2 的类型为 ‘int *’ [-Wformat]

c - 为什么对(超过)三个无符号字符的算术运算在使用 -Wconversion 时总是触发警告?

c++ - 这些警告不应该是 g++ -Wall 吗?

c++ - 如何进行依赖于平台的检查并且没有 -Wtype-limits 警告?

c - 在没有cmd.exe弹出窗口的情况下使用C中的popen在Windows上执行任务列表

C - 如何从数组中提取偶数并将它们放入另一个名为 EvenNumbers 的数组中?

c - Linux C Makefile (FFmpeg) undefined reference `curl_easy_init'

c++ - 在 GCC 中避免或警告从 const char* 到 bool 的隐式转换