Подтвердить что ты не робот

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*/
4b9b3361

Ответ 1

Функция должна быть объявлена ​​до ее вызова. Это можно сделать разными способами:

  • Запишите прототип в заголовке
    Используйте это, если функция должна быть вызвана из нескольких исходных файлов. Просто напишите свой прототип
    int Fibonacci(int number);
    вниз в файле .h (например, myfunctions.h), а затем #include "myfunctions.h" в коде C.

  • Переместите функцию до того, как она будет вызвана в первый раз
    Это означает, что запись функции int Fibonacci(int number){..}
    перед вашей функцией main()

  • Явно объявить функцию до того, как она будет вызвана в первый раз
    Это сочетание вышеуказанных вкусов: введите прототип функции в файле C перед вашей функцией main()

В качестве дополнительной заметки: если функция int Fibonacci(int number) должна использоваться только в файле, где она была реализована, она должна быть объявлена ​​static, так что она будет видна только в этой единицы перевода.

Ответ 2

Компилятор хочет знать функцию до ее использования

просто объявите функцию перед ее вызовом

#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)
{
//…

Ответ 3

У меня такое же предупреждение (это делает мое приложение не может построить). Когда я добавляю C function в Objective-C .m file, но забыл объявить его в .h файле.

Ответ 4

должен правильно вызвать функцию; like-Fibonacci: ввод