Xcode - 警告:隐式函数声明在C99中无效
获取警告:函数'Fibonacci'的隐式声明在C99中无效。 有什么问题?Xcode - 警告:隐式函数声明在C99中无效
#include <stdio.h>
int main(int argc, const char * argv[])
{
int input;
printf("Please give me a number : ");
scanf("%d", &input);
getchar();
printf("The fibonacci number of %d is : %d", input, Fibonacci(input)); //!!!
}/* main */
int Fibonacci(int number)
{
if(number<=1){
return number;
}else{
int F = 0;
int VV = 0;
int V = 1;
for (int I=2; I<=getal; I++) {
F = VV+V;
VV = V;
V = F;
}
return F;
}
}/*Fibonacci*/
功能都将被声明它变得调用之前。这可以通过各种方式来完成:
写下原型在头
使用这个命令的作用,是从几个源文件调用。只需在C代码中写下您的原型int Fibonacci(int number);
向下.h
文件(例如myfunctions.h
),然后#include "myfunctions.h"
。移动功能,它越来越被称为第一次
这意味着前,写下功能int Fibonacci(int number){..}
您main()
功能之前显式声明函数它越来越被称为第一次
前 这是上述风味的组合:在C文件中输入函数原型之前,你的main()
函数
作为附加说明:如果函数int Fibonacci(int number)
只能用于其实现的文件中,则应将其声明为static
,以便它仅在该翻译单元中可见。
编译器想知道功能才可以使用它
只是声明函数调用之前
#include <stdio.h>
int Fibonacci(int number); //now the compiler knows, what the signature looks like. this is all it needs for now
int main(int argc, const char * argv[])
{
int input;
printf("Please give me a number : ");
scanf("%d", &input);
getchar();
printf("The fibonacci number of %d is : %d", input, Fibonacci(input)); //!!!
}/* main */
int Fibonacci(int number)
{
//…
很多thx!有一些C#的经验,它并不完全相同。 – CodingUpStream 2013-04-06 11:21:14
我有相同的警告(这使我的应用程序无法构建)。当我在Objective-C's .m file
中添加C function
时,忘记将其声明为.h
文件。
应该正确调用该功能; like-Fibonacci:input
@Cupidvogel:如果您有新问题,请提出新问题。 – eckes 2014-06-02 08:27:54
这看起来太小了,不能提出一个新的问题,所以我在这里问。 – SexyBeast 2014-06-02 11:39:36
为什么我必须在头中输入'int Fibonacci(int number);'?我认为'int斐波那契(int);'应该没问题? – kyle 2017-03-22 18:57:42