Я никогда не понимал необходимости использования #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 почувствуют желание опубликовать ответ. Спасибо всем!
Для двух прагм
#pragma fenv_access (on)
#pragma STDC FENV_ACCESS ON
Имеет ли значение, что я поместил их до или после заголовков #include?
На мой взгляд, оба подходят?
Почему GCC этого не делает поддерживаете #pragma STDC FENV_ACCESS ON ?...
Этот вопрос - открытый вопрос о новых идеях.
Я хочу поделиться своим кодом, и я надеюсь, что некоторые из вас могут дать мне код для моего проекта Spring Boot Husky Pic.
пейджинг, сортировка и фильтрация
Студенческий сервис:
public Page...
Команда scapy show() печатает что-то подобное для сообщения IKEv2 и включает в себя цепочку полезных данных. Я пытаюсь избежать написания кода для перехода от одной полезной нагрузки к другой, и кажется, что scapy уже должен сделать это, чтобы...
Я сталкиваюсь с проблемой при обучении модели с использованием PEFT и LORA на установке мульти-GPU с Pytorch и обнимающими трансформаторы лица. Ошибка, которую я получаю:
RuntimeError: Expected all tensors to be on the same device, but found at...
runtimeerror: ожидал, что все тензоры будут на одном устройстве, но нашли как минимум два устройства, Cuda: 1 и Cuda: 0! При использовании архитектуры трансформаторов
это означает, что вам следует обновить свой питор /горел, который является более...