[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5.53 `make-header-guard' - make self-inclusion guard

Usage: (make-header-guard prefix)
This function will insert the #ifndef and #define C preprocessing directives that will cause a header file to exclude itself once it has been sourced in a compilation. The #define name is composed as follows:

  1. The first element is the string argument and a separating underscore.
  2. That is followed by the name of the header file with illegal characters mapped to underscores.
  3. The end of the name is always, "_GUARD".
  4. Finally, the entire string is mapped to upper case.

The final #define name is stored in an SCM symbol named header-guard. Consequently, the concluding #endif for the file should read something like:

 
#endif /* [+ (. header-guard) +] */

The name of the header file (the current output file) is also stored in an SCM symbol, header-file. Therefore, if you are also generating a C file that uses the previously generated header file, you can put this into that generated file:

 
#include "[+ (. header-file) +]"

Obviously, if you are going to produce more than one header file from a particular template, you will need to be careful how these SCM symbols get handled.

Arguments:
prefix - prefix for #define name.



This document was generated by Davide on March, 6 2002 using texi2html