header-guard
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| header-guard [May 14, 2026 at 13:01] – yanevskiv | header-guard [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | # 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) 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 | ||
| - | |||
| - | ## Example | ||
| - | A prototypical example of a header guard is the following. | ||
| - | ```c | ||
| - | // hello_world.h | ||
| - | #ifndef __HELLO_WORLD_H__ | ||
| - | #define __HELLO_WORLD_H__ | ||
| - | |||
| - | struct Hello { | ||
| - | const char *text = " | ||
| - | }; | ||
| - | |||
| - | #endif /* __HELLO_WORLD_H__ */ | ||
| - | ``` | ||
| - | |||
| - | This allows multiple inclusion of " | ||
| - | ```c | ||
| - | // main.c | ||
| - | #include < | ||
| - | #include < | ||
| - | |||
| - | int main() { | ||
| - | Hello world; | ||
| - | return 0; | ||
| - | } | ||
| - | ``` | ||
header-guard.1778763693.md.gz · Last modified: by yanevskiv
