Común · Saberes

Include guard

Construct in C and C++ for idempotent header inclusion

Texto en inglés

In the C and C++ programming languages, an #include guard, sometimes called a macro guard, header guard or file guard, is a way to avoid the problem of double inclusion when dealing with the include directive. The C preprocessor processes inclusion directives like #include "Foo.h" to textually include Foo.h and transcludes the code of that file into a copy of the main file often called the translation unit.

En Wikipedia

Texto en inglés Aún no hay artículo en tu idioma: extracto en inglés.

In the C and C++ programming languages, an #include guard, sometimes called a macro guard, header guard or file guard, is a way to avoid the problem of double inclusion when dealing with the include directive. The C preprocessor processes inclusion directives like #include "Foo.h" to textually include Foo.h and transcludes the code of that file into a copy of the main file often called the translation unit. However, if an #include directive for a given file appears multiple times during compilation, the code will effectively be duplicated in that file. If the included file includes a definition, this can cause a compilation error due to the One Definition Rule, which says that definitions (such as the definition of a class) cannot be duplicated in a translation unit. #include guards prevent this by defining a preprocessor macro when a header is first included. In the event that header file is included a second time, the #include guard will prevent the actual code within that header from being compiled. An alternative to #include guards is #pragma once. This non-standard but commonly supported directive among C and C++ compilers has the same purpose as an #include guard, but has less code and does not require the definition of a variable. Modules, introduced in C++20, eliminate the necessity of #include guards, due to not being handled by the preprocessor. Modules can only be imported at most one time into a translation unit.

Texto: Wikipedia en inglés, CC BY-SA 4.0. ·

Cartas cercanas

Abrir

Toca para cerrar

Confirmación