El test.c
siguiente programa¿Por qué GCC es inconsistente sobre emitir advertencias para funciones no declaradas?
int main() {
dummySum(1, 2);
return 0;
}
int dummySum(int a, int b) {
return a + b;
}
... no genera ningún tipo de advertencia cuando se compila con gcc -o test test.c
, mientras que la siguiente se hace:
int main() {
dummySum(1, 2);
return 0;
}
void dummySum(int a, int b) {
a + b;
}
¿Por qué?
No lo es. Yo también pensé eso. 'int' vs' void' return type de 'dummySum'. – mattjgalloway
El tipo de devolución predeterminado de una función no declarada es int. Cuando lo declaras como nulo, no encuentra ninguna función coincidente. Creo que si usa una prueba de advertencia más fuerte (por ejemplo, "Pared"), recibirá una advertencia en ambos casos. – Joe
en la primera publicación era la misma, tienes razón. Edité la publicación. Lo siento –