It seems to me that all this fuss over multiple includes and include guards would be solved by something like a #stop directive:
#ifdef STDIO_H
#stop
#endif
#define STDIO_H
which would cause the preprocessor to skip the rest of the file. How would this not be a better solution? What am I missing?