Возможный дубликат:
#pragma - помогите разобраться
Я видел pragma
много раз, но всегда путался, кто-нибудь знает, что он делает? Это только окна?
Возможный дубликат:
#pragma - помогите разобраться
Я видел pragma
много раз, но всегда путался, кто-нибудь знает, что он делает? Это только окна?
В языках программирования C и C ++ #pragma once - нестандартная, но широко поддерживаемая директива препроцессора, предназначенная для включения текущего исходного файла только один раз в одну компиляцию. Таким образом, #pragma однажды служит той же цели, что и #include guards, но имеет ряд преимуществ, в том числе: меньший объем кода, предотвращение конфликтов имен и повышенную скорость компиляции.
Дополнительные сведения см. В статье Википедии.
pragma
? Я не могу этого вспомнить ...
- person wireshark; 25.04.2011
Он используется для замены следующего кода препроцессора:
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
Хорошим соглашением является добавление обоих для поддержки устаревших компиляторов (что случается редко):
#pragma once
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
Так что, если #pragma однажды выйдет из строя, старый метод все равно будет работать.
Как правило, директивы #pragma
предназначены для реализации инструкций препроцессора, специфичных для компилятора. Они не стандартизированы, поэтому не стоит слишком на них полагаться.
В этом случае цель #pragma once
- заменить защиту включения, которую вы используете в файлах заголовков, чтобы избежать множественного включения. Он работает немного быстрее с компиляторами, которые его поддерживают, поэтому может сократить время компиляции для больших проектов с большим количеством файлов заголовков, которые часто #include
'ed.
pragma - это директива препроцессору. Обычно он используется для обеспечения некоторого дополнительного контроля во время компиляции. Например, не включайте тот же код файла заголовка. Есть много разных директив. Ответ зависит от того, что следует за словом прагмы.