It is more portable and does not have the problems of #pragma once
(cannot know that the same file is included under two different names
as can occur with links on unix, etc.).
gcc considers #pragma once to be deprecated.
These are macro (or include) guards:
// header.h #ifndef HEADER_H #define HEADER_H ... #endif