1. ホーム
  2. c

[解決済み] Xcode - 警告。C99 では関数の暗黙の宣言は無効です。

2022-03-12 07:40:46

質問

警告が表示される:関数 'Fibonacci' の暗黙の宣言は 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*/

解決方法は?

関数は、呼び出される前に宣言されている必要があります。これにはいろいろな方法があります。

  • ヘッダーにプロトタイプを書き込む
    この関数は、複数のソースファイルから呼び出すことができるようにする場合に使用します。プロトタイプを書くだけです。
    int Fibonacci(int number);
    でダウン .h ファイル(例. myfunctions.h を実行し、その後 #include "myfunctions.h" をCのコードに追加してください。

  • 最初に呼び出される前に関数を移動させる
    つまり、関数を書き出す
    int Fibonacci(int number){..}
    の前に main() 機能

  • 最初に呼び出される前に、関数を明示的に宣言します。
    これは、上記のフレーバーを組み合わせたものです。 main() 関数

補足すると、もし関数 int Fibonacci(int number) は、それが実装されたファイルの中でのみ使用されるものであるため、その宣言が必要です。 static そのため、その翻訳単位でのみ表示されます。