Zastanawiam się, dlaczego ta zostanie skompilowany:Dlaczego prototyp i definicja funkcji w C mogą się różnić?
int test();
int main() { return test((void*)0x1234); }
int test(void* data) { return 0; }
Dlaczego nie kompilator emituje żadnego błędu/ostrzeżenia o tym (próbowałem szczęk, gcc)? Jeśli zmienię wartość zwracaną, nie zostanie ona skompilowana - ale argumenty mogą się różnić ?!
możliwy duplikat [argumenty C void] (http://stackoverflow.com/questions/693788/c-void-arguments) –