Why does this code snippet compile?

c

Solution

Because function names are aliases to function pointers to those functions, which are themselves values much like integers.. This is semantically very similar to

#include <stdio.h>

int main(void) {
    42;
}

It is valid but pointless.

Problem

Why does the following code compile? ``` #include <stdio.h> int main(void) { getchar; } ```

Original source