Xcode – Advertencia: la declaración implícita de función no es válida en C99
⏰ 2 minutos de lectura
CodificaciónUpStream
Recibiendo una advertencia: la declaración implícita de la función ‘Fibonacci’ no es válida en C99. ¿Qué ocurre?
#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 función tiene que ser declarada antes de ser llamada. Esto podría hacerse de varias maneras:
Anota el prototipo en un encabezado.
Use esto si la función se puede llamar desde varios archivos fuente. Solo escribe tu prototipo int Fibonacci(int number);
abajo en un .h archivo (por ejemplo myfunctions.h) y luego #include "myfunctions.h" en el código C.
Mueva la función antes de que se llame por primera vez
Esto significa, escribir la función int Fibonacci(int number){..}
antes de su main() función
Declare explícitamente la función antes de que se llame por primera vez
Esta es la combinación de los sabores anteriores: escriba el prototipo de la función en el archivo C antes de su main() función
Como nota adicional: si la función int Fibonacci(int number) sólo se utilizará en el fichero donde se implemente, se declarará staticpara que solo sea visible en esa unidad de traducción.
@Cupidvogel: si tiene una nueva pregunta, haga una nueva pregunta, por favor.
– eckes
2 de junio de 2014 a las 8:27
Esto parecía demasiado menor para justificar una nueva pregunta, así que pregunté aquí.
– Bestia Sexy
2 de junio de 2014 a las 11:39
porque tengo que escribir int Fibonacci(int number); en el encabezado? creo int Fibonacci(int); ¿debería estar bien?
– Ka-Wa Yip
22 de marzo de 2017 a las 18:57
@JavierVazquez, no hay Objective-C en esta página.
– vikingosegundo
27 oct 2020 a las 13:59
@vikingosegundo Creo que comenté sobre otro comentario pero tal vez fue borrado… Así que borro mi comentario también 😉
– javi_swift
28 de octubre de 2020 a las 10:47
vikingosegundo
El compilador quiere conocer la función antes de poder usarla.
simplemente declare la función antes de llamarla
#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)
{
//…
Tengo la misma advertencia (hace que mi aplicación no se pueda compilar). cuando agrego C function en Objective-C's .m filePero se olvidó de declararlo en .h expediente.
en c La función tiene que ser declarada antes de ser llamada
incluir archivo principal
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información