header-guard
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| header-guard [May 14, 2026 at 12:55] – yanevskiv | header-guard [May 14, 2026 at 13:01] (current) – yanevskiv | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| # Header guard | # Header guard | ||
| - | **Header guards** are a pattern used in C and C++ programming languages when writing header files. Header files (.h files) are files that are included in source files (.c and .cpp files) using the `#include < | + | **Header guards** are a pattern used in C and C++ programming languages when writing header files. Header files (.h files) are files that are included in source files (.c and .cpp files) near the top (hence the name) using the `#include < |
| + | |||
| + | Header guards follow the same general pattern: | ||
| + | ```c | ||
| + | #ifndef __HEADER_GUARD_H__ | ||
| + | #define __HEADER_GUARD_H__ | ||
| + | |||
| + | // ... | ||
| + | |||
| + | #endif /* __HEADER_GUARD_H__ (This is just a comment) */ | ||
| + | ``` | ||
| In C and C++ programming languages, `#include` is nothing but text substitution. If you include something multiple times | In C and C++ programming languages, `#include` is nothing but text substitution. If you include something multiple times | ||
| ## Example | ## Example | ||
| - | A prototypical example of a header guard is the following | + | A prototypical example of a header guard is the following. |
| ```c | ```c | ||
| // hello_world.h | // hello_world.h | ||
| Line 18: | Line 28: | ||
| ``` | ``` | ||
| - | ### Why? | + | This allows multiple inclusion of " |
| ```c | ```c | ||
| // main.c | // main.c | ||
| Line 29: | Line 39: | ||
| } | } | ||
| ``` | ``` | ||
| + | |||
header-guard.1778763335.txt.gz · Last modified: by yanevskiv
