Can somebody explain to me why the following code does compile without a warning or error?
I would expect the compiler to warn me that the function no_args doesn't expect any arguments.
But the code compiles and runs function no_args recursively.
static void has_args(int a, int b, int c) { 
    printf("has_args\n");
}
static void no_args() {
    printf("no_args\n");
    no_args(1, 2, 3);
}
void main() {
  no_args();
}