Some languages "know" whether or not a particular header file is included; others do not.
In many "C" header files you will therefore see this: (e.g.
in the imaginary file, xyzzy.h
... included stuff goes here ...
Notice that, if the symbol is not
yet defined, the block will be included, and within that block the symbol (which is arbitrarily but consistently named, and which serves no other purpose...)
is defined. Thereafter, no matter how many subsequent times we may see #include "xyzzy.h"
, and even though the file will
be included each time, its contents will be effectively ignored in every case but the first.
a cumbersome mechanism, and this why other languages provide a require
construct (your keyword may vary...)
with a more powerful semantics.