Obtenir un avertissement: La déclaration implicite de la fonction 'Fibonacci' est invalide dans C99. Qu'est-ce qui ne va pas?
#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*/
La fonction doit être déclarée avant d'être appelée. Cela pourrait être fait de différentes manières:
Notez le prototype dans un en-tête
Utilisez cette option si la fonction doit pouvoir être appelée à partir de plusieurs fichiers source. Il suffit d'écrire votre prototypeint Fibonacci(int number);
dans un fichier .h
(par exemple myfunctions.h
), puis #include "myfunctions.h"
dans le code C.
Déplace la fonction avant qu'elle ne soit appelée pour la première fois
Cela signifie, écrivez la fonctionint Fibonacci(int number){..}
avant votre fonction main()
Déclarez explicitement la fonction avant qu'elle ne soit appelée pour la première fois
C’est la combinaison des variantes ci-dessus: tapez le prototype de la fonction dans le fichier C avant votre fonction main()
Remarque supplémentaire: si la fonction int Fibonacci(int number)
doit uniquement être utilisée dans le fichier où elle est implémentée, elle doit être déclarée static
, de sorte qu'elle ne soit visible que dans cette unité de traduction.
Le compilateur veut connaître la fonction avant de pouvoir l'utiliser
il suffit de déclarer la fonction avant de l'appeler
#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)
{
//…
J'ai le même avertissement (mon application ne peut pas être construite). Quand j'ajoute C function
dans Objective-C's .m file
, mais j'ai oublié de le déclarer dans le fichier .h
.
devrait appeler la fonction correctement; comme- Fibonacci: entrée