c - gcc 警告 : function used but not defined

标签 c gcc compiler-warnings

我收到警告:函数已使用但未定义。我有 static __inline__ 在头文件中说 a.h。头文件包含在 a.c 中。我想将头文件中的所有内联函数放入 .c 文件中。以下代码给出了我的问题的想法。

原始代码:

嗯:

static __inline__ function1(){
    function definition;  
}

我改变了:
嗯:

static function1();

交流电:

#include "a.h"

static function1(){
   function definition;
}

在执行上述操作时,我收到了警告:

   warning: function function1 is used but not defined. 

你能告诉我为什么我会收到这样的警告吗?我想将所有 __inline__ 函数转移到 .c 中,这样我就不会收到警告:

  warning: function1 is could not be inlined, code size may grow.

提前致谢

最佳答案

您已将函数声明为静态的。这意味着它仅在当前编译单元内可见。换句话说:实现仅在 a.c 文件中可见。您需要删除 a.ha.c 中的 static 关键字,以便其他 .c 文件可以看到该函数。您应该指定一个返回值,例如void function1(); 因为如果您没有指定,它隐式为 int

关于c - gcc 警告 : function used but not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5526461/

相关文章:

gcc - 在 ubuntu 上安装 gcc 4.1.0

c - C中的多行注释警告是什么意思?

c# - 给定的表达式始终是提供的类型

c# - 有没有办法让 C# 编译器在隐藏(隐藏)实例变量时发出警告?

c - 如何在 Windows 文本编辑器上阻止打印功能(CTRL + P)?

c - 弹丸运动程序 : What's wrong with this program?

c - fork 和管道 : does this C program contain a race condition?

c - 有效地将 16 位 short 转换为 8 位 char

c++ - 如何在我不想编辑的第 3 方代码中禁用来自 gcc 的未使用变量警告?

c - 查找字符串中最长单词的长度。 C语言