Site Tools


header-guard

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
header-guard [May 14, 2026 at 12:59] – yanevskivheader-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) using the `#include <...>` directive. They are used to allow multiple inclusions of the same file but prevent multiple definition errors.  
  
-Header guards follow the same general pattern.  
-```c 
-#ifndef __HEADER_GUARD_H__ 
-#define __HEADER_GUARD_H__ 
- 
-// ... 
- 
-#endif 
-``` 
- 
-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 = "world"; 
-}; 
- 
-#endif /* __HELLO_WORLD_H__ */ 
-``` 
- 
-### Why? 
-```c 
-// main.c 
-#include <hello_world.h> 
-#include <hello_world.h> 
- 
-int main() { 
-    Hello world; 
-    return 0; 
-} 
-``` 
header-guard.1778763550.md.gz · Last modified: by yanevskiv