【问题标题】:getting a warning when main.c file is compiled编译 main.c 文件时收到警告
【发布时间】:2017-04-10 03:43:41
【问题描述】:

我写了一个包含函数原型的头文件并导入到 main.c 文件中!尽管它编译并运行,但我只收到一个警告“函数的隐式声明”!没有与在头文件中声明原型的其他函数相关的其他警告!这是什么原因?

【问题讨论】:

  • 我希望我能看到你的控制台显示包含行号的警告并在 main.c 中读取该行;)
  • 您需要向我们展示代码和警告。
  • 你在第 23 行有一个错字。但说真的,你怎么能指望任何人告诉你发生了什么而不发布你的代码和错误消息。
  • 欢迎来到 Stack Overflow。请尽快阅读AboutHow to Ask 页面。当您有未编译的代码时,显示代码以及显示的确切代码的确切编译器消息至关重要。同样重要的是,您展示的是 MCVE (minimal reproducible example)。由于没有显示代码,我们无法以最笼统的方式回答您的问题。 (我很好奇为什么你认为 JavaScript Prototype JS 标签是合适的——它完全不相关。小心你的标签。)

标签: c function header warnings


【解决方案1】:

可能您正在使用未声明的函数。请参考link

【讨论】:

  • 这实际上更像是一个评论而不是一个答案。我知道你还不能发表评论;耐心是一种美德。
【解决方案2】:

如果您在没有声明的情况下调用函数,则该函数的使用将成为它的(隐式)声明,而隐式声明实际上是 C 中的错误。您的程序仅将其显示为警告,因为您的 gcc 编译器选择这样做。

由于您的所有其他函数都使用给定的原型,我建议您检查您的函数声明并确保没有拼写错误。如果您发布您的代码...我会用更合适的回复更新我的答案。

【讨论】:

  • 这既是评论也是答案。我知道你还不能发表评论(但如果你小心的话,你很快就能发表评论);耐心是一种美德。
【解决方案3】:

为了给出更清晰的答案,我需要查看代码,但首先,您永远不应该包含 .c 文件。例如,在 main.c 中你应该使用#include 包含你的头文件,然后如果你有一个正在使用的库,你也应该在其中包含头文件,但不是 main。

也可能是您的函数类型不正确,或者与原型中指定的类型不同。

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 2012-06-11
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多