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

|
Keil mVision.Соответственно, есть куча разных функций.Одни для одного,другие для другого, где то они пересекаюся и не редко.В общем, как обычно.Вот вопрос-стоит ли собирать их в разные си файлы и делать кучу extern-ов, или лучше все-таки без особой необходимости этого не делать.Может, надо искать золотую середину?Есть ли какие-нибудь критерии,кроме здравого смысла? На что это влияет?Спасибо
|
|
|
|
|
 |
Ответов
|
Aug 5 2008, 07:22
|
Группа: Участник
Сообщений: 10
Регистрация: 4-05-08
Пользователь №: 37 271

|
Модульность-это хорошо.Я это, безусловно, пинимаю.Такой вопрос-если я забью на модульность и совместимость, получу ли я прирост скорости или там свободного места?
|
|
|
|
|
Aug 5 2008, 07:34
|

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

|
Цитата(npopok @ Aug 5 2008, 11:22)  Такой вопрос-если я забью на модульность и совместимость, получу ли я прирост скорости или там свободного места? Встречный вопрос: а засчёт чего? Компилятор транслирует исходники функций в объектный код, линкер собирает из объектов файл прошивки. По большому счёту, им без разницы, в одном файле находятся функции или в 10. (20,50). Скорость и свободное место - понятия взаимоисключающие. Нужна скорость - inline и unrolling, соответственно теряем место. Не хватает места - обратная ситуация, приходится жертвовать скоростью.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Aug 5 2008, 10:00
|

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

|
Цитата(MrYuran @ Aug 5 2008, 10:34)  Компилятор транслирует исходники функций в объектный код, линкер собирает из объектов файл прошивки. По большому счёту, им без разницы, в одном файле находятся функции или в 10. (20,50). Ну разница все-таки есть. Если все в одном файле, и функции объявлены как static. Компилятор может сделать более эффективный код (например повставлять инлайнов там где это не указано явно, повыбрасывать неиспользуемые функции, заменить "дальний" вызов на "ближний" для процессоров где это актуально и .т.п.). С т.з. оптимизации компилятору лучше сразу видеть весь код в одном файле, потому что линкер ничего оптимизировать не будет. Только читаемость когда "все в одном" будет никакой.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|