Duplicar posible:
C function syntax, parameter types declared after parameter listFunción definición C
vi la siguiente sintaxis para la definición de la función de "Experto Programación C"
int compare(s1, s2)
char * s1, *s2;
{
while (*s1++ == *s2) {
if (*s2++ == 0) return (0);
}
return (*--s1 - *s2);
}
¿Cómo es la arriba definición válida? Se compila y funciona perfectamente sin ningún error.
estoy más cómodo con la siguiente sintaxis para la definición de la función
int compare(char * s1,char *s2)
{
while (*s1++ == *s2) {
if (*s2++ == 0) return (0);
}
return (*--s1 - *s2);
}
y no hay donde he visto la dada en el libro (C Mientras estudiaba en mi colegio o en otro lugar), puede alguien por favor tirar algo de luz sobre el dado en el libro.
Es la sintaxis antigua y obsoleta para la declaración de funciones. A veces llamado "estilo K & R". – cnicutar
Es un estilo antiguo, pero aún así es aceptado por el idioma. Por cierto: no creo que un libro "de programación C experto" debe contener 'retorno (0);' Hace – wildplasser
de 20 años, compiladores que no podía manejar la segunda sintaxis * * eran bastante comunes todavía. – Amadan