[an error occurred while processing this directive]
Ответ: Если эта функция не будет использована в других файлах - то да.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 20 января 2003 г. 15:22
В ответ на: Я к тому , что *.h файл используется как промежуточный. Наверное проще обявление и саму функцию писать в одном файле, а не в двух разных. отправлено sos 20 января 2003 г. 14:43

Но все дело в том, что функции библиотеки исполняющей системы уже ОТТРАНСЛИРОВАНЫ ранее и собраны в библиотеки ОБЪЕКТНЫХ модулей. В файлах *.h находяся только объявления функций, которые необходимы для правильной ссылке к этим функциям. Дело здесь осложняется тем, что и процессоры в семействе разные, и модели памяти, используемые для одного какого-либо процессора, могут тоже быть разными. Поэтому обычно имеется несколько библиотек объектных модулей привязанных к отдельному процессору и модли памяти.
Допустим, Вы решили создать библиотеку функций для того же DS1307. Вы можете странслировать функции и поместить в библиотеку для одного, данного типа процессора. Но для того, чтобы этими функциями правильно пользоваться, нужно знать тип и количество аргументов, возвращаемые значения и т.д. Эта информация помещается в соответствующем *.h файле.
Наконец Вы можете не транслировать эти функции а просто включить в проект файл с исходными текстами этих функциий, но и в этом случае проблема правильного обращения к ним из других модулей остается.
Можно в крайнем случае свалить в кучу все исходные тексты и поместить все это в один файл, тогда и *.h файлы не нужны. Но рыскать по одному громадному файлу для модификации всего одной фунции - занятие, на мой взгляд, довольно утомительное и чреватое ошибками. Поэтому лично я предпочитаю иметь отдельные, функционально независмые, модули. Даже если требуется описывать функции в двух разных файла.
Вообще, для себя я взял за правило начинать работу с каким-либо новым прибором (чипом) с символического описания всех его параметров: регистров, форматов данных, инструкций и т.д. По мере работы с ним я добавляю объявления функций для работы с данным прибором, глобальных переменных (если таковые имеются). Поверьте мне, в дальнейшем это сэконмит Вам уйму времени при отладке программ.
PS. Если хотите могу сбросить Вам по E-mail свой DS1307.h для примера.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru