реклама на сайте
подробности

 
 
> Как лучше писать
npopok
сообщение Aug 5 2008, 06:42
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 4-05-08
Пользователь №: 37 271



Keil mVision.Соответственно, есть куча разных функций.Одни для одного,другие для другого, где то они пересекаюся и не редко.В общем, как обычно.Вот вопрос-стоит ли собирать их в разные си файлы и делать кучу extern-ов, или лучше все-таки без особой необходимости этого не делать.Может, надо искать золотую середину?Есть ли какие-нибудь критерии,кроме здравого смысла? На что это влияет?Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Aug 5 2008, 06:53
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Обычно всегда стараюсь чётко разделить программу на модули, как можно более автономные. Функции, описанные в модулях, выносим в h-файл, и в других модулях его подключаем. Всё как обычно. Переменные тоже желательно разделить, для внутримодульного употребления - static.
Да это и не только для АРМ и Кейла, а вообще нормальный стиль программирования.
Потом я беру, к примеру, модуль Indicator.c, перетаскиваю в новый проект и он без единой настройки сразу работает.
А чтобы не было "кучи extern-ов", нужно в модуле группировать данные и функции для работы с этими данными. Чтобы не было глобальных пересечений и взаимосвязей.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 5 2008, 13:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(MrYuran @ Aug 5 2008, 10:53) *
Обычно всегда стараюсь чётко разделить программу на модули, как можно более автономные. Функции, описанные в модулях, выносим в h-файл, и в других модулях его подключаем. Всё как обычно. Переменные тоже желательно разделить, для внутримодульного употребления - static.

+1. Сам к этому пришёл, основываясь на горьком опыте. Программы стали значительно более читаемыми. И больше не надо держать в голове всё это хитросплетение из глобальных переменных и функций.
Ещё одно правило - комментарий к каждой функции.

Цитата(npopok @ Aug 5 2008, 11:22) *
Модульность-это хорошо.Я это, безусловно, пинимаю.Такой вопрос-если я забью на модульность и совместимость, получу ли я прирост скорости или там свободного места?

Забивание на модульность приведёт к менее читаемой программе, а в ней потери скорости/памяти возникнут сами собой из-за бардака. И вообще, начинать оптимизировать надо только после того, как необходимость оптимизации была доказана измерениями. Иначе это пустая трата времени. Конечно, это не отменяет того, что выбираемые решения и алгоритмы должны изначально быть реалистичными (к примеру, таблица синусов на 100 кБайт не влезет в МК с 32 кБайтами).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- npopok   Как лучше писать   Aug 5 2008, 06:42
- - sergeeff   Мы обычно поступаем так. Для примера. Одна пара С ...   Aug 5 2008, 07:05
- - npopok   Модульность-это хорошо.Я это, безусловно, пинимаю....   Aug 5 2008, 07:22
|- - MrYuran   Цитата(npopok @ Aug 5 2008, 11:22) Такой ...   Aug 5 2008, 07:34
|- - Сергей Борщ   Цитата(MrYuran @ Aug 5 2008, 10:34) Встре...   Aug 5 2008, 09:37
|- - defunct   Цитата(MrYuran @ Aug 5 2008, 10:34) Компи...   Aug 5 2008, 10:00
||- - ReAl   Цитата(defunct @ Aug 5 2008, 13:00) Если ...   Aug 5 2008, 16:29
||- - defunct   Цитата(ReAl @ Aug 5 2008, 19:29) -fwhole-...   Aug 6 2008, 13:00
|- - defunct   Цитата(MrYuran @ Aug 5 2008, 10:34) Нужна...   Aug 5 2008, 10:08
- - Kaplinsky   Советую почитать книгу "Анализ программного ...   Aug 5 2008, 07:49
|- - Duplex   Цитата(Kaplinsky @ Aug 5 2008, 11:49) Сов...   Aug 5 2008, 09:46
|- - MrYuran   Цитата(Duplex @ Aug 5 2008, 13:46) Цена: ...   Aug 5 2008, 10:04
||- - Duplex   Цитата(MrYuran @ Aug 5 2008, 14:04) Потом...   Aug 5 2008, 13:34
||- - richie   Полезность разбиения на логические модули не обсуж...   Aug 5 2008, 14:45
|- - Kaplinsky   Цитата(Duplex @ Aug 5 2008, 12:46) Цена: ...   Aug 5 2008, 20:24
|- - Duplex   Цитата(Kaplinsky @ Aug 6 2008, 00:24) Раз...   Aug 6 2008, 06:36
|- - MrYuran   Цитата(Duplex @ Aug 6 2008, 10:36) Что по...   Aug 6 2008, 06:55
|- - Duplex   Цитата(MrYuran @ Aug 6 2008, 10:55) Тольк...   Aug 6 2008, 07:10
- - etoja   Начни с этого:   Aug 5 2008, 09:09
|- - npopok   Последнее ,конечно, полезно, но вообще не в тему   Aug 5 2008, 09:32
- - sergeeff   Я уже как-то писал и ссылки давал. Современные ком...   Aug 5 2008, 15:51
- - ReAl   А ещё функции можно дать атрибут externally_visibl...   Aug 6 2008, 20:27


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016