Виды связываний (external, internal, no linkage) для самых маленьких
Конспект редакции
Разберитесь раз и навсегда с external, internal и no linkage в C++, чтобы больше никогда не получать «multiple definition» при сборке своего проекта.
Материал на пальцах объясняет три типа связывания имён в C++: external linkage, internal linkage и no linkage. Основная проблема, с которой сталкиваются новички, — ошибка множественного определения (multiple definition) при сборке, когда одна и та же функция или переменная оказывается объявлена в разных единицах трансляции без корректного указания linkage. Автор разбирает, как модификаторы static, extern и анонимные пространства имён влияют на видимость символов для линковщика.
Особое внимание уделено практическим сценариям: почему заголовочные файлы с определениями функций приводят к дублированию, как правильно использовать header-only библиотеки через inline, и в каких случаях no linkage (например, у локальных static-переменных) вообще не создаёт символов. Статья будет полезна как начинающим программистам C++, так и тем, кто переходит с других языков и хочет систематизировать знания. Полный разбор с примерами кода и типовыми ошибками — по ссылке.
Материал агрегирован; полный текст — на сайте Хабр — ИТ-новости.
Фото (5)
Увеличить1 / 5




