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

 
 
> Как лучше писать
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
Ответов
npopok
сообщение Aug 5 2008, 07:22
Сообщение #2





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



Модульность-это хорошо.Я это, безусловно, пинимаю.Такой вопрос-если я забью на модульность и совместимость, получу ли я прирост скорости или там свободного места?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Aug 5 2008, 07:34
Сообщение #3


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

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



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

Встречный вопрос: а засчёт чего?
Компилятор транслирует исходники функций в объектный код, линкер собирает из объектов файл прошивки. По большому счёту, им без разницы, в одном файле находятся функции или в 10. (20,50).
Скорость и свободное место - понятия взаимоисключающие.
Нужна скорость - inline и unrolling, соответственно теряем место.
Не хватает места - обратная ситуация, приходится жертвовать скоростью.


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


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(MrYuran @ Aug 5 2008, 10:34) *
Компилятор транслирует исходники функций в объектный код, линкер собирает из объектов файл прошивки. По большому счёту, им без разницы, в одном файле находятся функции или в 10. (20,50).

Ну разница все-таки есть.
Если все в одном файле, и функции объявлены как static. Компилятор может сделать более эффективный код (например повставлять инлайнов там где это не указано явно, повыбрасывать неиспользуемые функции, заменить "дальний" вызов на "ближний" для процессоров где это актуально и .т.п.). С т.з. оптимизации компилятору лучше сразу видеть весь код в одном файле, потому что линкер ничего оптимизировать не будет.

Только читаемость когда "все в одном" будет никакой.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- npopok   Как лучше писать   Aug 5 2008, 06:42
- - MrYuran   Обычно всегда стараюсь чётко разделить программу н...   Aug 5 2008, 06:53
|- - scifi   Цитата(MrYuran @ Aug 5 2008, 10:53) Обычн...   Aug 5 2008, 13:20
- - sergeeff   Мы обычно поступаем так. Для примера. Одна пара С ...   Aug 5 2008, 07:05
|- - Сергей Борщ   Цитата(MrYuran @ Aug 5 2008, 10:34) Встре...   Aug 5 2008, 09:37
||- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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