Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
llotall
0 / 0 / 3
Регистрация: 01.07.2013
Сообщений: 38
#1

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++

21.07.2015, 20:20. Просмотров 887. Ответов 2
Метки нет (Все метки)

Всем добрый вечер!)
Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос.
Почему при объявлении прототипов функции в заголовочных файлах компилятор их видит,то есть связь каким-то образом устанавливается без участия программиста (то есть компилятор видит что та или иная функция существует в каком либо с++ файле и не ругается на него и наоборот), а в файлах исходников не видно без #include "name.h" содержимого заголовочного файла?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2015, 20:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними (C++):

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы?
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про...

Заголовочные файлы и файлы cpp
Со временем сложилось представление что при написании программ стоит разделять...

Раздельная компиляция: что помещать в заголовочные файлы, а что в файлы реализации (исходники)?
Здравствуйте, я учусь пользоваться Visual Studio.Пишу программу, в которой...

Зачем нужно добавлять файлы в файлы исходного кода
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как...

g++ Заголовочные файлы
Значит есть у меня файлик main.cpp к нему инклудиться #include "Event.h" .В...

заголовочные файлы в с++
я вот не могу понять, их обязательно делать в своих программах? В том смысле,...

2
lss
926 / 855 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
21.07.2015, 20:50 #2
Вопрос туманен. Там, где делается вызов функции, компилятор должен видеть прототип вызываемой функции (прямо прописанный в этом файле, в месте до вызова функции, или через инклуд заголовочного файла с прототипом). Реализацию этой функции, в .cpp файле, найдёт компоновщик.
Цитата Сообщение от llotall Посмотреть сообщение
а в файлах исходников не видно без #include "name.h"
Что за файлы исходников?
1
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
21.07.2015, 21:56 #3
Цитата Сообщение от llotall Посмотреть сообщение
Почему при объявлении прототипов функции в заголовочных файлах компилятор их видит,то есть связь каким-то образом устанавливается без участия программиста (то есть компилятор видит что та или иная функция существует в каком либо с++ файле и не ругается на него и наоборот), а в файлах исходников не видно без #include "name.h" содержимого заголовочного файла?
Код шаблонов (из которых STL состоит чуть менее чем полностью) как раз таки целиком запихивается в заголовочный файл. Остальной код стандартных библиотек, на сколько я помню, поставляется в заранее скомпилированном виде. То есть, компилятор просто прицепляет к программе шмат готового кода, а заголовочный файл использует лишь как оглавление этого шмата. Из-за чего Hello, World!, который вообще говоря мог бы весить пару килобайт, раздувается аки воздушный шарик (туда попадает вообще весь шмат, а не только то что нужно чтобы вывести одну разнесчастную строчку тексту на экран). Впрочем, это поведение вроде бы отключается какими-то опциями компилятора и некоторым количеством последующих взмахов бубна.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2015, 21:56
Привет! Вот еще темы с решениями:

Заголовочные файлы *.h
Доброго времени суток! Как понят следующее: В заголовочных файлах, в целях...

Заголовочные файлы
Подскажите, во время компоновки, в итоге, "присоединяются" к экзешнику все...

Заголовочные файлы
Всем добрый день! Пытался найти информацию по созданию заголовочных файлов, да...

Заголовочные файлы (.h)
Доброго времени суток господа! Озадачился вопросом по поводу заголовочных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru