Я не понимаю, почему этот код компилируется?
#include <stdio.h>
void foo() {
printf("Hello\n");
}
int main() {
const char *str = "bar";
foo(str);
return 0;
}
gcc даже не предупреждает о том, что передаю слишком много аргументов в foo(). Это ожидаемое поведение?