Перейти к содержимому

Bits stdc h что это

  • автор:

Как работает #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 int main () // b.cpp int main () // компилятор gcc на mac. .out size => 4248 байт для обоих. Обновление ответа сейчас. 🙂

abe312 28 июль 2018, в 18:09
@abe312 abe312 * rolleyes *
Swordfish 28 июль 2018, в 18:41
Показать ещё 5 комментариев

Этот заголовочный файл не является частью стандарта С++, поэтому он не переносится и его следует избегать.

Кроме того, даже если в стандарте есть какой-то заголовок, все же нужно избегать его вместо конкретных заголовков, поскольку компилятор должен действительно читать и анализировать каждый включенный заголовок (включая рекурсивно включенные заголовки) каждый один раз, когда скомпилирована единица перевода.

Robert Allan Hennigan Leahy 14 авг. 2014, в 16:23
Поделиться

Вот для чего нужны предварительно скомпилированные заголовки. У меня есть одна, в которой почти вся стандартная библиотека. Вот только как катиться.

Стоит ли когда либо использовать #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.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Bits stdc h что это

waipoli → Data structure question

maomao90 → Editorial for Hello 2024

NeoYL → Notes 1: AtCoder ABC 133F [Easy]

ILU2806 → Day 3/100 of becoming specialist on codeforces

D_coder22 → Uncertainty in Python Time of Execution

SAD_IN_NIGHTMARE → 2024 OIs

bycicle → Click here if you want a fast way to get rid of your alt

Некропост

PetarV → Codeforces Round #169 — Unofficial Editorial

MikeMirzayanov → Codeforces Single Account Policy: zh0ukangyang is Removed from the Rating

Некропост

AC_AC → CSES DP SECTION — Book Shop

Hexagons → [OFF TOPIC] Hollow Knight radiant tutorial for bossfight «Markoth»

Некропост

Gheal → Codeforces Round #833 (Div. 2) Editorial

stefdasca → Easy and Quick Video Tutorials for the CSES Problem Set

vrintle → Invitation to Gym Contest — Alpha IV (by AlgoRave)

maomao90 → I am top 1 contributor. AMA!

Некропост

YoyOyoYOy000y000 → Centroid Decomposition on a tree(Beginner)

SlavicG → Codeforces Round 918 (Div. 4)

mohammed_orkhan → I wnat to be EXPERT!!

thenymphsofdelphi → Codeforces Round #873 (Div. 1 & 2) Editorial

VivaciousAubergine → Wow! You received a rating of -501 in the CodeTON round. Share it!

diskoteka → Codeforces Round #878 (Div.3) Разбор

CheaterExposer → [UPDATE] Codeforces Cheater IOI Medalist

sarthak1357 → CSES shortest routes 1

Некропост

Pyqe → Codeforces Round #831 (Div. 1 + Div. 2, based on COMPFEST 14 Final) Editorial

Некропост

arham_doshi → cses graph session editorial(incomplete)

Bits stdc h что это

waipoli → Data structure question

maomao90 → Editorial for Hello 2024

NeoYL → Notes 1: AtCoder ABC 133F [Easy]

ILU2806 → Day 3/100 of becoming specialist on codeforces

D_coder22 → Uncertainty in Python Time of Execution

SAD_IN_NIGHTMARE → 2024 OIs

bycicle → Click here if you want a fast way to get rid of your alt

Некропост

PetarV → Codeforces Round #169 — Unofficial Editorial

MikeMirzayanov → Codeforces Single Account Policy: zh0ukangyang is Removed from the Rating

Некропост

AC_AC → CSES DP SECTION — Book Shop

Hexagons → [OFF TOPIC] Hollow Knight radiant tutorial for bossfight «Markoth»

Некропост

Gheal → Codeforces Round #833 (Div. 2) Editorial

stefdasca → Easy and Quick Video Tutorials for the CSES Problem Set

vrintle → Invitation to Gym Contest — Alpha IV (by AlgoRave)

maomao90 → I am top 1 contributor. AMA!

Некропост

YoyOyoYOy000y000 → Centroid Decomposition on a tree(Beginner)

SlavicG → Codeforces Round 918 (Div. 4)

mohammed_orkhan → I wnat to be EXPERT!!

thenymphsofdelphi → Codeforces Round #873 (Div. 1 & 2) Editorial

VivaciousAubergine → Wow! You received a rating of -501 in the CodeTON round. Share it!

diskoteka → Codeforces Round #878 (Div.3) Разбор

CheaterExposer → [UPDATE] Codeforces Cheater IOI Medalist

sarthak1357 → CSES shortest routes 1

Некропост

Pyqe → Codeforces Round #831 (Div. 1 + Div. 2, based on COMPFEST 14 Final) Editorial

Некропост

arham_doshi → cses graph session editorial(incomplete)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *