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