因为之前写java程序所以对于c的语言特性不是很了解,今天写一个递归小程序时一直提示该错误。
程序如下:
#include <stdio.h>
/*
斐波拉契序列
*/
int static i = 0;
int main(void){
int first = 1;
int second = 2;
resNext(first,second);
return 0;
}
void resNext(int a ,int b){
int temp = 0;
temp = b;
b = a+b;
a = temp;
i++;
printf("我是第%d次结果,值=%d\n",i,b);
if(i<10){
resNext(a,b);
}
}
后来发现,c语言程序必须先声明函数再调用,java是可以先调用后定义函数,所以将代码中主函数放最后就可以正确运行,或者在主函数前先声明函数,即增加void resNext(int a,int b;。
另外附上一些该错误的其他可能原因,从网上找到的:
1,可能是你的变量名没有输对
2,可能没有包含标准头文件