Pragma once - це

Правильний заголовок цієї статті - #pragma once. Він показаний некоректно через технічні обмежень.

У мовах програмування Сі та C ++ #pragma once - нестандартна, але широко поширена препроцесорну директива. розроблена для контролю за тим, щоб конкретний вихідний файл при компіляції підключався строго один раз. Тобто, #pragma once застосовується для тих же цілей, що і include guard. але вимагає менше коду і не допускає можливості колізії імен.

У статті про include guard наводиться приклад ситуації, в якій потрібно використовувати той чи інший метод. Виходом є використання include guard. наведене там же; Варіантом використання #pragma once може бути:

Гідності й недоліки

Застосування #pragma once замість include guard збільшить швидкість компіляції в багатьох випадках завдяки високорівневому механізму; компілятор може самостійно порівнювати імена файлів або inode 'и без необхідності виклику препроцесора Сі для перевірки заголовка на наявність #ifndef і #endif.

З іншого боку, деякі компілятори, як наприклад, GCC. також використовує спеціальний код для розпізнавання і оптимізації обробки include guard. [1]

Через те, що компілятор сам по собі відповідає за обробку #pragma once. програмісту немає необхідності створювати нові імена, як наприклад, GRANDFATHER_H в прикладі статті про Include guard. Це виключає ризик колізії імен, тобто заголовки не зможе викликати помилку при його підключенні. Також доводиться менше набирати текст, ніж при використанні include guard.

Можна використовувати обидві команди, #pragma once і include guards. для написання переноситься коду, що також може принести вигоду від застосування #pragma once при оптимізації (якщо компілятор її підтримує):

Примітки

додаткові джерела

Дивитися що таке "Pragma once" в інших словниках:

Pragma once - Saltar a navegación, búsqueda El título de este artículo se muestra incorrectamente debido a limitaciones técnicas. El título correcto es #pragma once. Del Lenguaje de programación C y C ++, #pragma once es una directiva de Preprocesador de C no ... ... Wikipedia Español

Pragma once - 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 ... ... Wikipedia

Include Guard - Der Include Guard (dt: Include Wächter) ist eine Programmiertechnik, um in C oder C ++ das Problem der doppelten Einbindung (engl. Double inclusion) zu umgehen. Dieses Problem tritt auf, wenn innerhalb eines Moduls mehrfach die gleiche Header ... ... Deutsch Wikipedia

C preprocessor - The C preprocessor (cpp) is the preprocessor for the C and C ++ computer programming languages. The preprocessor handles directives for source file inclusion (#include), macro definitions (#define), and conditional inclusion (#if). In many C ... ... Wikipedia

Undefined behavior - In computer programming, undefined behavior is a feature of some programming languages ​​most famously C. [1] In these languages, to simplify the specification and allow some flexibility in implementation, the specification leaves the results of ... ... Wikipedia

Include guard - In the C and C ++ programming languages, an #include guard, sometimes called a macro guard, is a particular construct used to avoid the problem of double inclusion when dealing with the #include directive. The addition of #include guards to a ... ... Wikipedia

Заголовки - (іноді головний файл, англ. Header file), або підключається файл в мовах програмування файл, механічно «вставляється» компілятором в вихідний текст в тому місці, де розташовується деяка директива (в Паскалі, ... ... Вікіпедія

Препроцесор Сі - препроцесор С / С ++ програмний інструмент, що змінює код програми для подальшої компіляції і збірки, який використовується в мовах програмування Сі та його нащадка C ++. Цей препроцесор забезпечує використання стандартного набору ... ... Вікіпедія

Header file - In computer programming, particularly in the C and C ++ programming languages, a header file or include file is a file, usually in the form of source code, that is automatically included in another source file by the compiler. Typically, header ... ... Wikipedia