Invariably, header files look like this
SOMETHING will not be defined the first time the file is included, so the body of the header file is included, and SOMETHING becomes defined.
// body of header file goes here
If you try and include the file again, then SOMETHING will already be defined and the body of the header file will be skipped (you've already included it)
It basically means you can
without the compiler complaining about things being redefined or redeclared.