apprico
Мыслитель
(8642)
13 лет назад
не совсем подключение к библиотекам. Вообще то это "прямая вставка" заголовочных файлов.
то есть: этой директивой мы говорим компилятору, что собираемся использовать идентификаторы, которые собственно говоря, и перечислены в заголовочных файлах. Поэтому компилятор, когда делает свою работу составляет таблицу идентификаторов. Когда он компилирует ваши функции (переменные, константы, классы) то вместе с кодом в объектный файл попадают их имена, а вот для тех которые вы подключаете с помощью инклюда - он не генерит код для них, просто на эти идентификаторы - ссылается.
Работа разрешения этих ссылок - это как раз работа линковщика, поэтому, если у вас в проекте не подключена библиотека (в свойствах проекта) , а вы пользуетесь заголовочным файлом, то получите ошибку линковки, хотя компилятор спокойно сделает свою работу и создаст объектный файл.
paperrose
Гуру
(4557)
13 лет назад
Это директива препроцессора. Директивы препроцессора представляют собой инструкции, записанные в тексте программы на СИ, и выполняемые до трансляции программы.
Твоя в данном случае берет и вставляет весь твой код из библиотеки как бы в начало
Александр Невский
Профи
(551)
13 лет назад
на самом деле это деректива препроцсора, которая вставляет содержимое указанного файла вместо строки "инклуд" и не является ни местом где объявляют функции, ни особым хранилищем, а также в этом файле отсутствует компиляция и линкования кода!
Содержимое"инклуд" файлов проверяется и компилируется только после вставки из файла.
О_О
Спасибо.