If you ever written a C application with custom-defined header files, you've used the pre-processor pattern:
#ifndef FOO_H
#define FOO_H
.
.
.
#endif
Ever wonder what this pattern was called? I never did, until the other day when I searched for it. The pattern is referred to as the 'once-only header' pattern, sometimes called the 'wrapper #ifdef'.
Call it what you want, the intention is to ensure that the header is not copy-n-pasted multiple times in a translation unit, due to multiple direct or indirect includes. The FOO_H is referred to as the 'guard' or 'controlling macro'.
Another common technique that you may have made use of goes something like this:
#ifdef SYS1
#include "sys1.h"
#elif . . .
.
.
.
#endif
This is referred to as a 'computed includes' pattern or technique. Not much else to add, just a name for a common face.
No comments:
Post a Comment