Mediumpragma
Чем #pragma отличается от #pragma once?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
`#pragma` — директива для compiler-specific инструкций. Незнакомая #pragma игнорируется. #pragma once — одна из самых популярных прагм.
#pragma once // защита от повторного include
#pragma pack(push, 1) // отключить padding
struct Packet { char t; int v; }; // sizeof == 5
#pragma pack(pop)
#pragma message("building...") // информационное сообщение
#pragma GCC diagnostic push // управление warnings (GCC/Clang)
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic pop
#pragma omp parallel for // OpenMP
for (int i = 0; i < n; ++i) { /* ... */ }Стандарт C++ не определяет список pragmas — всё implementation-defined. Основные: once, pack, message, warning/diagnostic, omp.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.