【问题标题】:Implicit declaration of function found in header?在标头中找到函数的隐式声明?
【发布时间】:2012-01-30 06:14:06
【问题描述】:

我的 file.h 中有以下内容:

#define SetSP(sp)  asm("movq  %0,%%rsp":           : "r" (sp)  )

但是,在我的 file.c 文件中,当我尝试使用它时:

SetSp(lwp_ptable[lwp_procs].sp);

当我编译 file.c 时,我得到一个函数 SetSp 的隐式声明。我在file.c中有#include“file.h”。想法?

【问题讨论】:

  • 头文件加进去了吗?
  • 是的,我确实包含 file.h
  • 您是否在#define SetSP 之后和(sp) 之前添加了一个额外的空格?您是否将您的 file.h 包含在 file.c 中?使用gcc -C -E file.c > file.i 然后查看file.i 内部以了解预处理器在做什么......

标签: c header-files


【解决方案1】:

您的定义是SetSP,而您将其用作SetSp,请注意字母p 中的大小写差异。欢迎使用区分大小写的语言...

【讨论】:

    【解决方案2】:

    如果您复制并粘贴了代码,请注意 SetSPSetSp 不同(您在调用宏时使用了小写的 p)。

    【讨论】:

      猜你喜欢
      • 2021-01-20
      • 1970-01-01
      • 2012-02-29
      • 2016-08-10
      • 2014-06-28
      相关资源
      最近更新 更多