c - C 中已定义但未使用的函数

标签 c compiler-warnings

我有以下代码:

static __inline__ LIST list_List(POINTER P)
{
  return list_Cons(P,list_Nil());
 }

编译后我收到以下警告:

inlining is unlikely but function size may grow

我删除了内联并更改为以下内容:

static  LIST list_List(POINTER P)
{
  return list_Cons(P,list_Nil());
 }

现在我收到以下警告:

list_List is defined but not used.

在删除之前,我没有收到上述警告“函数已定义但未使用” 内联。仅在删除<​​strong>内联后我才收到警告。实际上该函数已被使用。当我评论上述函数时,我收到以下错误:

 In function 
  (.text+0x148b): undefined reference to `list_List'
  In function `list_CopyWithElement':

任何人都可以建议我如何删除该警告。

最佳答案

“静态”意味着该函数只能在当前编译单元的范围内使用(基本上是源文件,除非您使用#include 做奇怪的事情)。

因此,编译器警告您,您声明了一个不能在当前源文件外部使用的函数,但(当前)也没有在该源文件内使用该函数。

关于c - C 中已定义但未使用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2818831/

相关文章:

Swift - 编译器警告我没有解包一个可选的但然后强制我解包使用!而不是?

c - 如何使用 sscanf_s() 从文件路径中提取文件名?

c - 如何只打印字符串的某些部分?

c# - VS2017 : CSC : warning CS2002: Source file <filename> specified multiple times. 如何解决?

java - 如何删除此警告 : com. sun.org.apache.xerces.internal.dom.DOMImplementationImpl 是 Sun 专有 API,可能会在未来版本中删除

c++ - 如果返回值未用于特定类型,则编译失败

c - 使用指针反转 C 中的字符串

使用 mhash 编译程序

c - 如何在不释放它指向的数据指针的情况下释放 skb 缓冲区?

编译警告。数组初始值设定项中的元素过多