The template files contain specific compiler directives which are necessary to allow multiple inclusion of header files by the application modules and to allow inclusion of a header file by it’s own C-source file. The latter is needed for the function prototyping of the exported functions of a module. Each header file has the following compiler directives in the beginning:
#ifndef _..._INCLUDED #define _..._INCLUDED
The module’s name has to be filled in for the three dots in the example. The closing #endif can be found at the bottom of the header file just before the EOF block. By using this mechanism, a header file can be included multiple times without generating compiler errors, only the first time the compiler reaches an include of the header file, the header file will actually be included by the compiler. Just below the block EXPORTED VARIABLES another compiler directive shows as follows:
#ifndef _..._C_SRC #endif
The module’s name has to be filled in for the three dots in the example. Between these two lines the exported variables of a module, if there are any, have to be declared using the keyword extern. In the C source file of the module this directive will be defined first before the include section and thus before the compiler includes it’s own header file. When the header file is then included during compilation of the C source file, the compiler will skip the part under the EXPORTED VARIABLES section and thus compiler errors are prevented.