Я никогда не понимал необходимости использования #pragma, когда #ifndef #define #endif работает всегда.
Я понял видел использование комментария #pragma для связи с другими файлами, но настроить параметры компилятора было проще с помощью IDE.
Каковы некоторые другие варианты использования #pragma это полезно, но не широко известен?
Изменить:
Я нет сразу после списка директив #pragma. Возможно, мне следует перефразировать этот вопрос немного подробнее:
Какой код, написанный вами с помощью #pragma, вы нашли полезным?
.
Краткий ответ:
Спасибо всем, кто ответил и/или прокомментировал. Вот краткое изложение некоторых материалов, которые я нашел полезными:
Джейсон предложил использовать #pragma Once или #ifndef #define #endif позволит ускорить компиляцию в крупномасштабной системе. Стив поддержал это предложение.
280Z28 выступил вперед и упомянул, что #pragma Once предпочтительнее для MSVC, а компилятор GCC оптимизирован для #ifndef #define #endif. Поэтому следует использовать любой из них, а не оба.
Джейсон также упомянул о пакете #pragma для двоичной совместимости, а Клиффорд против этого из-за возможных проблем переносимости и порядка байтов. Эван предоставил пример кода, а Деннис сообщил, что большинство компиляторов используют заполнение для выравнивания.
sblom предложил использовать #pragma alert, чтобы изолировать реальные проблемы и отключить предупреждения, которые уже рассмотрены.
Эван предложил использовать #pragma comment(lib, header) для удобного переноса между проектами без повторной настройки IDE. Конечно, это не слишком переносимо.
sbi предоставил изящный трюк #pragma message для пользователей VC, позволяющий выводить сообщения с информацией о номерах строк. Джеймс сделал еще один шаг вперед и позволяет ошибкам или предупреждениям соответствовать сообщениям MSVC и отображаться соответствующим образом, например в списке ошибок.
Крис предоставил регион #pragma , чтобы иметь возможность сворачивать код с помощью специального сообщения в MSVC.
Стоп, подожди, а что, если я захочу публиковать сообщения о том, что не можно использовать #pragmas, если только необходимо?
Клиффорд написал с другой точки зрения о том, что не использовать #pragma. Престижность.
Я добавлю в этот список еще что-нибудь, если пользователи SO почувствуют желание опубликовать ответ. Спасибо всем!
Я никогда не понимал необходимости использования #pragma, когда #ifndef #define #endif работает всегда.
Я понял видел использование комментария #pragma для связи с другими файлами, но настроить параметры компилятора было проще с помощью IDE.
Каковы некоторые другие варианты использования #pragma это полезно, но не широко известен?
[b]Изменить:[/b]
Я нет сразу после списка директив #pragma. Возможно, мне следует перефразировать этот вопрос немного подробнее:
[b]Какой код, написанный вами с помощью #pragma, вы нашли полезным?[/b]
.
[b]Краткий ответ:[/b] Спасибо всем, кто ответил и/или прокомментировал. Вот краткое изложение некоторых материалов, которые я нашел полезными:
[list] [*]Джейсон предложил использовать #pragma Once или #ifndef #define #endif позволит ускорить компиляцию в крупномасштабной системе. Стив поддержал это предложение. [*]280Z28 выступил вперед и упомянул, что #pragma Once предпочтительнее для MSVC, а компилятор GCC оптимизирован для #ifndef #define #endif. Поэтому следует использовать любой из них, а не оба. [*]Джейсон также упомянул о пакете #pragma для двоичной совместимости, а Клиффорд против этого из-за возможных проблем переносимости и порядка байтов. Эван предоставил пример кода, а Деннис сообщил, что большинство компиляторов используют заполнение для выравнивания. [*]sblom предложил использовать #pragma alert, чтобы изолировать реальные проблемы и отключить предупреждения, которые уже рассмотрены. [*]Эван предложил использовать #pragma comment(lib, header) для удобного переноса между проектами без повторной настройки IDE. Конечно, это не слишком переносимо. [*]sbi предоставил изящный трюк #pragma message для пользователей VC, позволяющий выводить сообщения с информацией о номерах строк. Джеймс сделал еще один шаг вперед и позволяет ошибкам или предупреждениям соответствовать сообщениям MSVC и отображаться соответствующим образом, например в списке ошибок. [*]Крис предоставил регион #pragma , чтобы иметь возможность сворачивать код с помощью специального сообщения в MSVC. [/list]
[b]Стоп, подожди, а что, если я захочу публиковать сообщения о том, что не можно использовать #pragmas, если только необходимо?[/b]
[list] [*]Клиффорд написал с другой точки зрения о том, что не использовать #pragma. Престижность. [/list]
Я добавлю в этот список еще что-нибудь, если пользователи SO почувствуют желание опубликовать ответ. Спасибо всем!