Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

We can solve the problem of including a header file twice by defining a unique preprocessor instruction constant that if it is encountered we do not process the body of the header file, i.e.:

Code Block
languagec
#ifndef SOME_ARBITRARY_UNIQUE_CODE
#define SOME_ARBITRARY_UNIQUE_CODE
//.... body of header file goes here.
#endif // end of the block which started at line 2

...

So how do you make a unique arbitrary code? There is more than one way to solve to solve this problem:

  • Have convention that maps the file name of the header file to a unique code

  • Or use something like a Globally Unique IDentifier - GUID.