Dlaczego gcc pozwala na przekazywanie argumentów do funkcji zdefiniowanej bez argumentów?
Nie rozumiem dlaczego ten kod się kompiluje?
#include <stdio.h>
void foo() {
printf("Hello\n");
}
int main() {
const char *str = "bar";
foo(str);
return 0;
}
gcc nawet nie wysyła ostrzeżenia, że przekazuję zbyt wiele argumentów do foo (). Czy to oczekiwane zachowanie?