[ Foro de C ]
¿Cómo puedo compilar este código?
# include <stdio.h>
# include <stdlib.h>
# define Z 4
int main (){
int votro=1,silo=0,contador=0,maiz=12,soja=6,cebada=11,opc=0,trigo=10;
int cant01[4]={0};
int acu1[4]={0};
void kg1 (int *cant1, int *acu);
while(votro!=0)
{
printf("1. Ingreso de datos");
printf("\n2. Mostrar Resultados");
printf("\n3. Finalizar Programa");
printf("\nOpcion: ");scanf("%d",&opc);
switch(opc){
case 1:
for (silo=0;silo<Z;silo++)
{
kg1(cant01,acu1);
}
break;
case 2:
printf ("luego continuo\n");
break;
case 3: return 0; break;
}
}
void kg1 (int *cant1, int *acu){
int i;
for (i=0;i<Z;i++){
acu[i]=acu[i]+cant1[i];
printf ("/n");
}}}
//
Me aparece el siguiente error:
tp3.1.c: In function ?main?:
tp3.1.c:51:6: error: static declaration of ?kg1? follows non-static declaration
void kg1 (int *cant1, int *acu){
^
tp3.1.c:14:6: note: previous declaration of ?kg1? was here
void kg1 (int *cant1, int *acu);
//
Cuando llamas a la función dentro de "main", no deberías usar "void". Eso se usa sólo cuando la defines, y lo mismo ocurre con el tipo de los parámetros. Por tanto, la línea
void kg1 (int *cant1, int *acu);
debería ser
kg1 (cant1, acu);
como sí haces más adelante, en el "for".
¿No puede ser que sobre toda esa línea? Como el programa no está comentado, está mal tabulado y usa nombres de variables muy cortos, no entiendo la lógica, así que no puedo decirte más...
Eso sí,por las 3 llaves que siguen a la función "kg1" parece que sea parte de "main", y debería estar fuera. Revisa eso también.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)