Pragma once (original) (raw)
En los lenguajes de programación C y C++, #pragma once es una directiva del preprocesador no estándar pero con un extenso soporte. Está diseñado para asegurar que el código fuente que lo invoca sea incluido una única vez. Así pues, #pragma once sirve al mismo propósito que la protección de macros, pero con una menor cantidad de código y sin la posibilidad de que lleguen a coincidir las identificaciones.
Property | Value |
---|---|
dbo:abstract | En los lenguajes de programación C y C++, #pragma once es una directiva del preprocesador no estándar pero con un extenso soporte. Está diseñado para asegurar que el código fuente que lo invoca sea incluido una única vez. Así pues, #pragma once sirve al mismo propósito que la protección de macros, pero con una menor cantidad de código y sin la posibilidad de que lleguen a coincidir las identificaciones. (es) Dans les langages de programmation C et C++, #pragma once est une directive de préprocesseur non standard mais largement prise en charge, conçue pour que le fichier source actuel ne soit inclus qu'une seule fois dans une seule compilation. Ainsi, #pragma once le même objectif que include guards, mais avec plusieurs avantages, notamment : moins de code, évitement des conflits de noms et parfois une amélioration de la vitesse de compilation. D'autre part, #pragma once n'est pas nécessairement disponible dans tous les compilateurs et son implémentation est délicate et peut ne pas toujours être fiable. (fr) In the C and C++ programming languages, #pragma once is a non-standard but widely supported preprocessor directive designed to cause the current source file to be included only once in a single compilation. Thus, #pragma once serves the same purpose as include guards, but with several advantages, including: less code, avoidance of name clashes, and sometimes improvement in compilation speed. On the other hand, #pragma once is not necessarily available in all compilers and its implementation is tricky and might not always be reliable. (en) В языках программирования Си и C++ #pragma once — нестандартная, но широко распространённая препроцессорная директива, разработанная для контроля за тем, чтобы конкретный исходный файл при компиляции подключался строго один раз. То есть, #pragma once применяется для тех же целей, что и include guard, но требует меньше кода и не допускает возможности коллизии имён. В наборе компиляторов GCC до версии 3.4 считалась устаревшей и для применения не рекомендовалась. Однако из-за широкого применения это решение было изменено. В статье об include guard приводится пример ситуации, в которой нужно использовать тот или иной метод. Выходом является использование include guard, приведённое там же; вариантом использования #pragma once может быть: File «grandfather.h»#pragma oncestruct foo { int member;};File «father.h»#include "grandfather.h"File «child.c»#include "grandfather.h"#include "father.h" (ru) pragma once – niestandardowa, ale szeroko obsługiwana dyrektywa kompilatora w językach programowania C i C ++. Jest zaprojektowana w celu zapobiegania zawarcia kodu źródłowego wiele razy w jednej kompilacji. Dyrektywa #pragma once funkcjonuje podobnie jak tzw. multiple include optimization – wzorzec projektowy wykorzystujący standardowe dyrektywy preprocesora, ale z dodatkowymi zaletami, w tym: mniej kodu, unikanie kolizji nazw, a czasem nawet poprawę szybkości kompilacji. Z drugiej strony, #pragma once niekoniecznie jest dostępna we wszystkich kompilatorach, a jej implementacja jest zawiła i może być zawodna. (pl) У мовах програмування С та C++, #pragma once — нестандартна, однак широкопідтримувана директива препроцесора, створена для того, аби забезпечити включення тіла файлу сирцевого коду (зазвичай заголовного файлу) лише один раз в одній одиниці трансляції. Таким чином, #pragma once виконує ту ж функцію, що і , але з деякими перевагами, зокрема меншою кількістю коду, уникненням колізії імен та прискоренням швидкості компіляції (в окремих випадках). (uk) Nas linguagens de programação C e C++, #pragma once é uma diretiva de compilação não standard mas que é largamente adotada por alguns compiladores, como o Microsoft Visual C++. Esta diretiva é usada em headers (ficheiros com extensão ".h" ou ".hpp", por exemplo) e serve para fazer com que o ficheiro atual apenas seja incluído uma vez durante o processo de compilação. Serve o mesmo propósito que as #include guards, mas com as vantagens de requerer menos código, evitar colisões de nomes, e em alguns casos até melhorar o tempo de compilação. (pt) 在C和C++程式語言中,#pragma once是一個非標準但是被廣泛支援的符號,會讓所在的檔案在一個單獨的編譯中只被包含一次。以此方式,#pragma once提供類似include防範的目的,但是擁有較少的程式碼且能避免名稱的碰撞。 (zh) |
dbo:wikiPageExternalLink | http://open-std.org/JTC1/SC22/WG21/docs/papers/2017/p0538r0.html |
dbo:wikiPageID | 3301054 (xsd:integer) |
dbo:wikiPageLength | 13542 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1109960241 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:C++Builder_XE3 dbr:Include_guard dbr:Inode dbr:Comeau_C/C++ dbr:Cray dbr:Clang dbr:GNU_Compiler_Collection dbr:NVIDIA_CUDA_Compiler dbc:C_(programming_language)_headers dbr:The_Portland_Group dbr:C++ dbr:C_(programming_language) dbr:C_preprocessor dbr:Tiny_C_Compiler dbr:HP_aC++ dbr:Texas_Instruments dbr:Arm_Ltd. dbc:C++ dbr:TASKING dbr:IAR_Systems dbr:IBM_XL_C++ dbr:Intel_C++_Compiler dbr:Microsoft_Visual_C++ dbr:Pelles_C dbr:Oracle_Solaris_Studio dbr:Source_file dbr:Digital_Mars_C++ dbr:Struct dbr:ARM_DS-5 |
dbp:reason | # (en) |
dbp:title | #pragma once (en) |
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:Correct_title dbt:Reflist dbt:Short_description dbt:Yes |
dct:subject | dbc:C_(programming_language)_headers dbc:C++ |
rdf:type | yago:WikicatCHeaders yago:Abstraction100002137 yago:Communication100033020 yago:Heading106343971 yago:Line107012534 yago:Matter106365467 yago:Writing106362953 yago:WrittenCommunication106349220 yago:Text106387980 |
rdfs:comment | En los lenguajes de programación C y C++, #pragma once es una directiva del preprocesador no estándar pero con un extenso soporte. Está diseñado para asegurar que el código fuente que lo invoca sea incluido una única vez. Así pues, #pragma once sirve al mismo propósito que la protección de macros, pero con una menor cantidad de código y sin la posibilidad de que lleguen a coincidir las identificaciones. (es) Dans les langages de programmation C et C++, #pragma once est une directive de préprocesseur non standard mais largement prise en charge, conçue pour que le fichier source actuel ne soit inclus qu'une seule fois dans une seule compilation. Ainsi, #pragma once le même objectif que include guards, mais avec plusieurs avantages, notamment : moins de code, évitement des conflits de noms et parfois une amélioration de la vitesse de compilation. D'autre part, #pragma once n'est pas nécessairement disponible dans tous les compilateurs et son implémentation est délicate et peut ne pas toujours être fiable. (fr) In the C and C++ programming languages, #pragma once is a non-standard but widely supported preprocessor directive designed to cause the current source file to be included only once in a single compilation. Thus, #pragma once serves the same purpose as include guards, but with several advantages, including: less code, avoidance of name clashes, and sometimes improvement in compilation speed. On the other hand, #pragma once is not necessarily available in all compilers and its implementation is tricky and might not always be reliable. (en) pragma once – niestandardowa, ale szeroko obsługiwana dyrektywa kompilatora w językach programowania C i C ++. Jest zaprojektowana w celu zapobiegania zawarcia kodu źródłowego wiele razy w jednej kompilacji. Dyrektywa #pragma once funkcjonuje podobnie jak tzw. multiple include optimization – wzorzec projektowy wykorzystujący standardowe dyrektywy preprocesora, ale z dodatkowymi zaletami, w tym: mniej kodu, unikanie kolizji nazw, a czasem nawet poprawę szybkości kompilacji. Z drugiej strony, #pragma once niekoniecznie jest dostępna we wszystkich kompilatorach, a jej implementacja jest zawiła i może być zawodna. (pl) У мовах програмування С та C++, #pragma once — нестандартна, однак широкопідтримувана директива препроцесора, створена для того, аби забезпечити включення тіла файлу сирцевого коду (зазвичай заголовного файлу) лише один раз в одній одиниці трансляції. Таким чином, #pragma once виконує ту ж функцію, що і , але з деякими перевагами, зокрема меншою кількістю коду, уникненням колізії імен та прискоренням швидкості компіляції (в окремих випадках). (uk) Nas linguagens de programação C e C++, #pragma once é uma diretiva de compilação não standard mas que é largamente adotada por alguns compiladores, como o Microsoft Visual C++. Esta diretiva é usada em headers (ficheiros com extensão ".h" ou ".hpp", por exemplo) e serve para fazer com que o ficheiro atual apenas seja incluído uma vez durante o processo de compilação. Serve o mesmo propósito que as #include guards, mas com as vantagens de requerer menos código, evitar colisões de nomes, e em alguns casos até melhorar o tempo de compilação. (pt) 在C和C++程式語言中,#pragma once是一個非標準但是被廣泛支援的符號,會讓所在的檔案在一個單獨的編譯中只被包含一次。以此方式,#pragma once提供類似include防範的目的,但是擁有較少的程式碼且能避免名稱的碰撞。 (zh) В языках программирования Си и C++ #pragma once — нестандартная, но широко распространённая препроцессорная директива, разработанная для контроля за тем, чтобы конкретный исходный файл при компиляции подключался строго один раз. То есть, #pragma once применяется для тех же целей, что и include guard, но требует меньше кода и не допускает возможности коллизии имён. В наборе компиляторов GCC до версии 3.4 считалась устаревшей и для применения не рекомендовалась. Однако из-за широкого применения это решение было изменено. (ru) |
rdfs:label | Pragma once (es) Pragma once (fr) Pragma once (pl) Pragma once (en) Pragma once (pt) Pragma once (ru) Pragma once (uk) Pragma once (zh) |
owl:sameAs | freebase:Pragma once yago-res:Pragma once wikidata:Pragma once dbpedia-bg:Pragma once dbpedia-es:Pragma once dbpedia-fa:Pragma once dbpedia-fr:Pragma once dbpedia-pl:Pragma once dbpedia-pt:Pragma once dbpedia-ru:Pragma once dbpedia-uk:Pragma once dbpedia-zh:Pragma once https://global.dbpedia.org/id/2rSMr |
prov:wasDerivedFrom | wikipedia-en:Pragma_once?oldid=1109960241&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Pragma_once |
is dbo:wikiPageWikiLink of | dbr:Include_directive dbr:Include_guard dbr:C_preprocessor |
is foaf:primaryTopic of | wikipedia-en:Pragma_once |