Common Pitfall: Including a Header File, but not Compiling with the Corresponding Source File

Can we #include "*sourcefile.c*"?

Since extern int a[] is allowed, can we do extern int *a?

Can we #include a header file we won’t use?

What’s the best layout for Header Files?