header.h is not a valid identifier. You cannot have a period in a macro name. That said, the name you pick for your include guard macros is completely arbitrary. After all, it's just another variable. It is purely convention (and reasonable in order to avoid clashes) to name them after...