警告の取得:関数 '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
)にダウンしてから、Cコードで#include "myfunctions.h"
にダウンします。
初めて呼び出される前に関数を移動する
これは、関数を書き留めることを意味しますint Fibonacci(int number){..}
main()
関数の前
初めて呼び出される前に関数を明示的に宣言する
これは上記のフレーバーの組み合わせです。main()
関数の前にCファイルに関数のプロトタイプを入力します
追加の注意として:関数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)
{
//…
同じ警告が表示されます(アプリをビルドできません)。 C function
にObjective-C's .m file
を追加すると、.h
ファイルで宣言するのを忘れていました。
関数を適切に呼び出す必要があります。 like-フィボナッチ:入力