Xcode-警告:函数的隐式声明在C99中无效


73

收到警告:函数“ Fibonacci”的隐式声明在C99中无效。怎么了?

Answers:


81

该函数必须在被调用之前声明。这可以通过多种方式完成:

  • 在标头中写下原型,
    如果该功能可以从多个源文件中调用,请使用此功能。只要写你的原型
    int Fibonacci(int number);
    下来的.h文件(例如myfunctions.h),然后#include "myfunctions.h"在C代码。

  • 在第一次调用该函数之前将其移动。
    这意味着,请
    int Fibonacci(int number){..}
    在您的函数之前写下该main()函数

  • 显式声明的功能,它变得首次调用之前
    这是上面口味的组合:您之前键入C文件的函数的原型main()功能

另外需要注意的是:如果该功能int Fibonacci(int number)仅在实现该功能的文件中使用,则应声明static,以便仅在该翻译单元中可见。


1
@Cupidvogel:如果您有一个新问题,请提出一个新问题。
eckes

4
这看起来太小,无法提出新的问题,所以我在这里问。
SexyBeast

为什么我必须输入int Fibonacci(int number);标题?我认为int Fibonacci(int);应该没事吗?
叶嘉华

@JavierVazquez,此页面上没有Objective-C。
vikingosegundo

@vikingosegundo我想我对另一条评论发表了评论,但也许它已被删除...所以我也删除了我的评论;)
Javier Vazquez

26

编译器希望在使用该功能之前先知道该功能

在调用函数之前先声明它


1

我有同样的警告(这使我的应用无法构建)。当我添加C functionObjective-C's .m file,却忘了在.h文件中声明它。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.