Xcode – Warnung: Die implizite Funktionsdeklaration ist in C99 ungültig
Lesezeit: 2 Minuten
CodingUpStream
Warnung erhalten: Die implizite Deklaration der Funktion ‘Fibonacci’ ist in C99 ungültig. Was ist los?
#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*/
Die Funktion muss deklariert werden, bevor sie aufgerufen wird. Dies könnte auf verschiedene Weise geschehen:
Notieren Sie den Prototyp in einer Überschrift
Verwenden Sie dies, wenn die Funktion aus mehreren Quelldateien aufrufbar sein soll. Schreiben Sie einfach Ihren Prototypen int Fibonacci(int number);
unten in a .h Datei (zB myfunctions.h) und dann #include "myfunctions.h" im C-Code.
Verschieben Sie die Funktion, bevor sie das erste Mal aufgerufen wird
Das heißt, schreiben Sie die Funktion auf int Fibonacci(int number){..}
vor deinem main() Funktion
Deklarieren Sie die Funktion explizit, bevor sie das erste Mal aufgerufen wird
Dies ist die Kombination der oben genannten Varianten: Geben Sie den Prototyp der Funktion in der C-Datei vor Ihrer ein main() Funktion
Als zusätzlicher Hinweis: Wenn die Funktion int Fibonacci(int number) darf in der Datei nur dort verwendet werden, wo es implementiert ist, es muss deklariert werden staticsodass es nur in dieser Übersetzungseinheit sichtbar ist.
warum muss ich tippen int Fibonacci(int number); in der Kopfzeile? Ich denke int Fibonacci(int); sollte gut sein?
– Ka-Wa Yip
22. März 2017 um 18:57 Uhr
vikingosegundo
Der Compiler möchte die Funktion kennen, bevor er sie verwenden kann
Deklarieren Sie einfach die Funktion, bevor Sie sie aufrufen
#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)
{
//…
in c Die Funktion muss deklariert werden, bevor sie aufgerufen wird
Kopfdatei einschließen
Ich habe die gleiche Warnung (meine App kann nicht erstellt werden). Wenn ich hinzufüge C function in Objective-C's .m fileAber vergessen, es zu deklarieren .h Datei.
14208800cookie-checkXcode – Warnung: Die implizite Funktionsdeklaration ist in C99 ungültigyes