|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Зачем нужно писать *.h файлы |
|
Зачем нужно писать *.h файлы
|
Пользователь Сообщения: 135 |
Профиль | Отправить PM | Цитировать Я уже 2 дня как начал осваивать этот великий и могучий язык, но некоторые вещи до меня не доходят.
Допустим я создал несколько функций. Продублировал их определение в *.h (Но я очень туп и сразу написать то что надо не могу) Поэтому решил их изменить. Потом еще и еще... И каждый раз нужно искать все это в *.h файлах чтобы востановить соответвие. Когда это проделываешь несколко раз, то возникает мягко говоря легкое раздражение. Неужели нельзя как то упростить. Я понимаю что хидер файлы нужны компилятору, линкеру, или еще хрен знает чему, но почему человек то должен набирать два раза одно и тоже? Где обещанная красота и лаконичность С++? В конце концов почему не создать небольшую утилиту которая бы парсила *.cpp и автоматом выдирала бы определения в *.h, и затем подавала бы все это вместе компилеру? Такая утилита имхо не очень сложна в реализации. И почему такие очевидные вещи не пришли еще кому-то в голову. Или я чего-то не понимаю? Так объясните... |
|
Отправлено: 01:27, 07-09-2003 |
Модер Железа Сообщения: 1557
|
Профиль | Сайт | Отправить PM | Цитировать to bilytur
Можно и юез хеадер-файла. Компилятору он НЕ нужен Предположим, Вы пишите прогу из двух С файлов. В одном из них хотите использовать функции другого, но дублировать их описания в обоих файлах влом. Вот здесь может пригодится H-файл. Описываем функцию в этом файле, подключаем к обоис С и кайфуем Прогу для ывдирания писать НЕ надо. Просто надо хеадеры писать [s]Исправлено: bgg0408, 2:45 7-09-2003[/s] |
------- Отправлено: 01:44, 07-09-2003 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 244
|
Профиль | Отправить PM | Цитировать Никто тебе не запрещает писать реализацию и объявление в одном файле. Просто это как бы стандарт - разработчиков много и чтобы не было какой-либо путаницы делают так. Здесь эта тема уже обсуждалась, посмотри здесь
http://forum.oszone.net/topic.cgi?fo...&topic=424 [s]Исправлено: Megabizon, 19:35 7-09-2003[/s] |
------- Отправлено: 18:34, 07-09-2003 | #3 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Не мужики я понял что декларации нужны. В одном ли файле или в разных сути это не меняет. Я не понял зачем вообще их нужно писать. Вернее почему это нужно делать вручную.
Еше раз вкратце, идея такая, допустим есть файл: >---------file.cpp #include "file.h" int main(){ //... func1(a,b,c); func2(a,b,c,); func3(a,b,c); } void func1(int a , int b, int c){ //... } void func2(int a , int b, int c){ //... } void func3(int a , int b, int c){ //... } <---------eof Запускаем нашу утилитку например так: cpp2h *.cpp *.h Получаем: >---------file.h int main(); void func1(int a , int b, int c); void func2(int a , int b, int c); void func3(int a , int b, int c); <---------eof Кстати строчку #include "file.h" можно добавлять куда угодно как обычно. После этого ты вдруг понял что func1() должна возвращать значение, у func2() должно быть 4 аргумента, func3() вобще не нужна, а нужны func7() и func8() ok. Изменяешь только один раз один файл: file.cpp и ВСЕ! А если нашу утилитку запускать автоматически каждый раз перед компиляцией то можно кайфовать вобще всю оставшуюся жизнь. зы: На этапе разработки это дело бы имхо сильно упростило бы написание. Ну а если дело дойдет до продажи *.obj. Там можно и вручную подкоректировать h-файлы. Вставить копирайты там и.т.д. зызы: Возможно здесь закралась какя-то ошибка? зызызы: А может уже давно кто-то написал что-то подобное? |
Отправлено: 03:24, 08-09-2003 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] 2 вопроса непонятно зачем это нужно | vladimirn | Хочу все знать | 12 | 25-01-2010 10:08 | |
Зачем нужно обновление KB928416? | Michael | Хочу все знать | 4 | 29-11-2009 03:06 | |
Защита информации - зачем это нужно | Greyman | Хочу все знать | 11 | 29-08-2009 18:21 | |
[решено] Зачем такое нужно? | Trix | Оптические приводы | 1 | 29-02-2008 18:46 | |
Зачем нужно делать несколько проходов (passes)? | shmond | Видео и аудио: обработка и кодирование | 13 | 12-04-2007 09:28 |
|