Стоит ли когда либо использовать #include ?
я вот только не давно узнал про заголовочный файл #include
Отслеживать
Dmitriy Vizir
задан 9 ноя 2020 в 19:22
Dmitriy Vizir Dmitriy Vizir
168 1 1 серебряный знак 12 12 бронзовых знаков
Это не библиотека, а внутренний заголовочный файл в некоторых компиляторах.
9 ноя 2020 в 19:44
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Кроме медленной компиляции, минус этого файла в том, что он нестандартный. Он есть только в GCC (а точнее в его стандартной библиотеке С++, libstdc++).
Обычно его используют для «ленивого программирования», да.
Но сделан он был для использования в качестве PCH (precompiled header, предварительно компилируемый заголовочный файл — погулилите термин). Хотя даже для этой цели использовать его сомнительно — я бы использовал свои PCH.
Отслеживать
ответ дан 9 ноя 2020 в 20:25
HolyBlackCat HolyBlackCat
26.9k 3 3 золотых знака 27 27 серебряных знаков 40 40 бронзовых знаков
- c++
- библиотеки
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как работает #include в C ++? [Дубликат]
Я прочитал из codeforces Блог, который, если мы #include в программе C++ , тогда нет необходимости включать какие-либо другие файлы заголовков. как работает #include , и нормально ли использовать его вместо включения отдельных файлов заголовков?
JerryGoyal 14 авг. 2014, в 17:22
Поделиться
Скорее всего это для образовательных целей. Я предполагаю, что bits/stdc++.h включает все заголовки C ++.
101010 14 авг. 2014, в 14:48
/agree с вышеизложенным. Зачем комитету по стандартизации беспокоиться о разделении функциональности STL на несколько заголовков, если бы только один заголовок был быстрее, портативнее, проще и лучше?
Marco A. 14 авг. 2014, в 14:55
Из самого источника заголовка: Это файл реализации для предварительно скомпилированного заголовка.
Yuushi 14 авг. 2014, в 14:57
@MarcoA. Потому что компьютеры в 1980 году имели меньше памяти.
Neil Kirk 14 авг. 2014, в 14:57
@NeilKirk: Я использовал упомянутый вами инструмент, перешел по первой ссылке, попал на эту страницу, затем увидел ваш комментарий и застрял в цикле.
riv 28 окт. 2014, в 22:29
Никто иной, как BS, предпринял попытку вернуть стандартную кухонную насадку для новых пользователей и для быстрой сборки игрушек. Он как-то умер (плохая практика для больших реальных проектов? Я также помню, что они хотели, чтобы выпуск и отладка имели тот же ABI, который был неработоспособен). Я не могу найти справочный документ, хотя. Я думаю, что для такого заголовка есть законная ниша. Хотя все это должно волшебным образом исчезнуть, когда мы получим модули.
emsr 04 авг. 2015, в 19:35
Показать ещё 4 комментария
Поделиться:
3 ответа
Лучший ответ
В основном это заголовочный файл, который также включает в себя каждую стандартную библиотеку и stl include file. Единственная цель, которую я могу увидеть, — это тестирование и образование.
Использование этого будет включать в себя много лишних вещей и увеличивает время компиляции.
Изменить: Как говорит Нил, это реализация для предварительно скомпилированных заголовков. Если вы правильно настроили его для предварительной компиляции, это фактически ускорит время компиляции в зависимости от вашего проекта. (https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html)
Я бы предположил, что вам потребуется время, чтобы узнать о каждом из заголовков sl/stl и включить их отдельно, а не использовать «суперзбудители», кроме прекомпиляции.
Zelix 14 авг. 2014, в 16:29
Поделиться
Это для предварительно скомпилированных заголовков, которые сокращают время компиляции! (При правильной настройке)
Neil Kirk 14 авг. 2014, в 14:56
Я не думаю, что очень хорошо изучать C ++, совершенно не зная, где определяются вещи, которые вы используете . в какой момент вы останавливаетесь и выясняете это?
OJFord 14 авг. 2014, в 14:59
@OllieFord Никогда, в идеале. Это 21 век. Компиляторы должны выяснить, какие части стандартной библиотеки мне нужны, чтобы сэкономить время для написания важных вещей. Но, конечно, люди должны узнать о заголовках, так как это часть языка.
Neil Kirk 14 авг. 2014, в 15:03
Нет, но в зависимости от возраста студента и учебной программы и так далее .
Zelix 14 авг. 2014, в 15:03
Небольшой недостаток включения заключается в том, что это приводит к наличию множества имен в пространстве имен. В редких случаях это может привести к некоторым трудным для понимания ошибкам (на несколько секунд). Например, если одна из ваших переменных называется count . Но я не могу вспомнить конкретный запутанный пример ошибки в данный момент .
Evgeni Sergeev 05 апр. 2016, в 07:45
Основное назначение этого заголовочного файла — программирование соревнований. Я рекомендовал бы избегать этого в любых серьезных контекстах.
Apollys 15 авг. 2018, в 23:05
Показать ещё 4 комментария
#include — файл реализации для предварительно скомпилированного заголовка.
С точки зрения разработки программного обеспечения, рекомендуется минимизировать включение. Если вы его используете, на самом деле это включает в себя множество файлов, которые могут не понадобиться вашей программе, поэтому без необходимости увеличивать время компиляции и размер программы.
Но в конкурсах использование этого файла — хорошая идея, когда вы хотите сократить время, затрачиваемое на занятие работой; особенно когда ваш ранг чувствителен к времени.
Он работает в большинстве онлайн-судей, в среде программирования, включая ACM-ICPC (субрегиональные, региональные и мировые финал) и многие онлайн-судьи.
Недостатки этого в том, что он
- увеличивает время компиляции.
- использует внутренний нестандартный заголовочный файл библиотеки GNU С++ и поэтому не будет компилироваться в MSVC, XCode и многих других компиляторах
abe312 17 нояб. 2015, в 18:19
Поделиться
для пользователей Mac с clang: у вас не будет предустановленного stdc ++. h, поскольку это не стандартный заголовок. Так что просто вставьте следующую суть в / usr / local / include / bits и все готово. gist.github.com/abe312/a078b27b03b6e29f0a19a279ec3265cd
abe312 18 апр. 2017, в 18:50
Я только что приехал сюда с codechef.com, чтобы найти этот заголовок в различных решениях проблем. Это объяснение имеет большой смысл. +1
Irfy 21 июнь 2017, в 14:31
@abe312 abe312 «Если вы используете его, на самом деле он содержит много файлов, в которых ваша программа может не нуждаться, таким образом увеличивая время компиляции и размер программы без необходимости». Включение неиспользуемых определений и объявлений не повлияет на размер программы, если она не используется.
Swordfish 25 июль 2018, в 01:36
@Swordfish как насчет объема оперативной памяти во время компиляции?
abe312 27 июль 2018, в 17:29
@abe312 abe312 Я ничего не сказал о времени компиляции или памяти, но только что упомянул, что «увеличиваю [. ] размер программы без необходимости». неправда.
Swordfish 27 июль 2018, в 17:34
@Swordfish Я только что проверил это с 2 файлами a.cpp и b.cpp // a.cpp #include
abe312 28 июль 2018, в 18:09
@abe312 abe312 * rolleyes *
Swordfish 28 июль 2018, в 18:41
Показать ещё 5 комментариев
Этот заголовочный файл не является частью стандарта С++, поэтому он не переносится и его следует избегать.
Кроме того, даже если в стандарте есть какой-то заголовок, все же нужно избегать его вместо конкретных заголовков, поскольку компилятор должен действительно читать и анализировать каждый включенный заголовок (включая рекурсивно включенные заголовки) каждый один раз, когда скомпилирована единица перевода.
Robert Allan Hennigan Leahy 14 авг. 2014, в 16:23
Поделиться
Вот для чего нужны предварительно скомпилированные заголовки. У меня есть одна, в которой почти вся стандартная библиотека. Вот только как катиться.
Bits stdc h что это
mekkuin → I am eating rice everyday
ATSTNG → Does Polygon automaticly send statements and tutorials of all problems into AI service?
MikeMirzayanov → Polygon: AI-Powered Automatic Tips
MikeMirzayanov → Codeforces Single Account Policy: zh0ukangyang is Removed from the Rating
Blinov_Artemii → Bullying on Codeforces
_ _asm__ → Most annoying person on CF in 2023
rohitrao835589 → memes
Vladosiya → Codeforces Round 913 (Div. 3) Editorial
Vladosiya → Codeforces Round 903 (Div. 3) Разбор
cloud_eve → Elementary Number Theory
maomao90 → Editorial for Hello 2024
Palestinian_Dream → Extracting Mathematical Ideas Behind The Problems
changingmong100 → Title: «A Mother’s Love in Codeforces»
I_HATE_CONSTRUCTIVES. → IZhO 2024 day 1 discussion
Victor_Luis123 → Is Dijkstra’s overrated.
maomao90 → Hello 2024
atcoder_official → AtCoder Beginner Contest 335 (Sponsored by Mynavi) Announcement
![]()
salt_n_ice → CSES Longest Flight Route TLE in one test case
![]()
box → On the Min25 sieve and extensions / SPOJ ASSIEVE
maomao90 → I am top 1 contributor. AMA!
VivaciousAubergine → Wow! You received a rating of -501 in the CodeTON round. Share it!
whatthemomooofun1729 → codeforces login issue
mohammed_orkhan → I wnat to be EXPERT!!
uchicha_itachi → What does plagiarism actually include?
Zhtluo → Is ICPC ECNA 2023 problem C straight-up wrong?
Stdc++.h — скачать и исправить ошибки
Файлы H, такие как stdc++.h, классифицируются как файлы Developer (C/C++/Objective-C Header). Как файл C/C++/Objective-C Header он был создан для использования в Orwell Dev-C++ 5.11 от компании orwelldevcpp.
Первая версия stdc++.h для Orwell Dev-C++ 5.11 увидела свет 04/27/2015 в Windows 10. По нашим данным, этот файл является последним обновлением от компании orwelldevcpp.
В этой статье обсуждаются подробные сведения о файлах, порядок устранения неполадок с файлом H при проблемах с stdc++.h, а также полный набор бесплатных загрузок для каждой версии файла, которая была зарегистрирована нашей командой.

Рекомендуемая загрузка: исправить ошибки реестра в WinThruster, связанные с stdc++.h и (или) Orwell Dev-C++.


![]()
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11
Средняя оценка пользователей
![]()
Обзор файла
| Сведения о разработчике и ПО | |
|---|---|
| Программа: | Orwell Dev-C++ 5.11 |
| Разработчик: | orwelldevcpp |
| Программное обеспечение: | Orwell Dev-C++ |
| Версия ПО: | 5.11 |
| Сведения о файле | |
|---|---|
| Размер файла (байтов): | 2778 |
| Дата первоначального файла: | 11/22/2019 |
| Дата последнего файла: | 11/22/2019 |
| Информация о файле | Описание |
|---|---|
| Размер файла: | 2.7 kB |
| Дата и время изменения файла: | 2019:11:22 16:20:56+00:00 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
Что такое сообщения об ошибках stdc++.h?
Общие ошибки выполнения stdc++.h
Ошибки файла stdc++.h часто возникают на этапе запуска Orwell Dev-C++, но также могут возникать во время работы программы. Эти типы ошибок H также известны как «ошибки выполнения», поскольку они возникают во время выполнения Orwell Dev-C++. К числу наиболее распространенных ошибок выполнения stdc++.h относятся:
- Не удается найти stdc++.h.
- stdc++.h — ошибка.
- Не удалось загрузить stdc++.h.
- Ошибка при загрузке stdc++.h.
- Не удалось зарегистрировать stdc++.h / Не удается зарегистрировать stdc++.h.
- Ошибка выполнения — stdc++.h.
- Файл stdc++.h отсутствует или поврежден.
Библиотека времени выполнения Microsoft Visual C++
![]()
Программа: C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\32\bits\stdc++.hstdc++.h
Среда выполнения получила запрос от этого приложения, чтобы прекратить его необычным способом.
Для получения дополнительной информации обратитесь в службу поддержки приложения.

В большинстве случаев причинами ошибок в H являются отсутствующие или поврежденные файлы. Файл stdc++.h может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с Orwell Dev-C++) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла stdc++.h может быть вызвано отключением питания при загрузке Orwell Dev-C++, сбоем системы при загрузке или сохранении stdc++.h, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Как исправить ошибки stdc++.h — 3-шаговое руководство (время выполнения: ~5-15 мин.)
Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему stdc++.h. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.
Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Восстановление системы» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Восстановление системы»
- Введите пароль администратора (при необходимости).
- Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
- Восстановите компьютер к этому образу резервной копии.
Если на этапе 1 не удается устранить ошибку stdc++.h, перейдите к шагу 2 ниже.

Шаг 2. Если вы недавно установили приложение Orwell Dev-C++ (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Orwell Dev-C++.
Чтобы удалить программное обеспечение Orwell Dev-C++, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Удалить» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Установка и удаление программ»
- Найдите запись для Orwell Dev-C++ 5.11 и нажмите «Удалить»
- Следуйте указаниям по удалению.
После полного удаления приложения следует перезагрузить ПК и заново установить Orwell Dev-C++.
Если на этапе 2 также не удается устранить ошибку stdc++.h, перейдите к шагу 3 ниже.

Orwell Dev-C++ 5.11
Шаг 3. Выполните обновление Windows.
Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках stdc++.h может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Обновить» и нажмите ENTER.
- В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
- Если обновления доступны для загрузки, нажмите «Установить обновления».
- После завершения обновления следует перезагрузить ПК.
Если Центр обновления Windows не смог устранить сообщение об ошибке stdc++.h, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Если эти шаги не принесут результата: скачайте и замените файл stdc++.h (внимание: для опытных пользователей)
Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла stdc++.h. Мы храним полную базу данных файлов stdc++.h со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Orwell Dev-C++ . Чтобы загрузить и правильно заменить файл, выполните следующие действия:
- Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы stdc++.h».
- Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
- Скопируйте этот файл в соответствующее расположение папки Orwell Dev-C++:
Windows 10: C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\32\bits\stdc++.h
Windows 10: C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\bits\stdc++.h
Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.
СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с stdc++.h. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.