В Xcode - предупреждение: неявная декларация функции является недействительным в стандарте C99
получение предупреждения: неявное объявление функции "Фибоначчи" недопустимо в 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*/
4 ответа:
функция должна быть объявлена до ее вызова. Это может быть сделано различными способами:
запишите прототип в заголовочном файле
Используйте это, если функция должна вызываться из нескольких исходных файлов. Просто напишите свой прототипint Fibonacci(int number);
в (например,myfunctions.h
) и нажмите#include "myfunctions.h"
В C код.переместите функцию, прежде чем она будет вызвана в первый раз
Этот значит, запишите функцию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) { //…