Me pregunto por qué esto se compilará:¿Por qué el prototipo y la definición de una función en C pueden diferir?
int test();
int main() { return test((void*)0x1234); }
int test(void* data) { return 0; }
¿Por qué no el compilador emitir cualquier error/advertencia acerca de que (probé sonido metálico, gcc)? Si cambio el valor de retorno no compilará, pero los argumentos pueden diferir?
posible duplicado de [C argumentos vacíos] (http://stackoverflow.com/questions/693788/c-void-arguments) –