I'm not that experienced with C++... but is it to prevent your names from accidently messing with reserved words or other other defined constants, while using consistent names for the defines?A good name to use for the header guard is HEADER_H, where that's the name of the file. For example, for "core.h", you might use CORE_H.