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:52] – 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 guards** are a pattern used in C and C++ programming languages when writing header files. Header files (.h files) |
| - | Header files are files that | + | |
| - | A prototypical example of a header guard is the following | + | Header guards follow |
| ```c | ```c | ||
| - | // my_header.h | + | #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 | ||
| + | |||
| + | ## Example | ||
| + | A prototypical example of a header guard is the following. | ||
| + | ```c | ||
| + | // hello_world.h | ||
| + | # | ||
| + | # | ||
| struct Hello { | struct Hello { | ||
| - | const char *world; | + | const char *text = "world"; |
| }; | }; | ||
| - | #endif /* __MY_HEADER_H__ | + | #endif /* __HELLO_WORLD_H__ |
| ``` | ``` | ||
| + | |||
| + | This allows multiple inclusion of " | ||
| + | ```c | ||
| + | // main.c | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | int main() { | ||
| + | Hello world; | ||
| + | return 0; | ||
| + | } | ||
| + | ``` | ||
| + | |||
header-guard.1778763130.txt.gz · Last modified: by yanevskiv
