include guard
#ifndef/#define/#endif lines that stop a header being pasted in twice.
An include guard wraps a header's contents in a macro test so a second #include in the same translation unit expands to nothing; #pragma once is the widely supported shorthand.