![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Разбиваю функцию Action() на много маленьких функций, но им придется передавать кучу параметров, что делать?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Подумать, может ты неправ ;-) |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Bsa, не, это точно, мне же самому удобнее будет, еще можно как я понял улучшить код, делаю вот такие штуки, вместо старых ифов:
Только не понимаю какой символ за что отвечает, если можно, поясните. Вот по типу этих ифов, наверняка есть какие другие хитрости, я знаю их множество, очень они мне нужны, посветите, пожалуйста. Это сообщение отредактировал(а) m1kle - 30.5.2007, 17:25 |
|||
|
||||
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Удобнее передавать кучу параметров? И чем это лучше if-а? На две буквы короче? ИМХО код должен быть прежде всего легок для чтения и понимания людьми, удобен в использовании (12 параметров этому не способствуют), а потом уже эффективен и.т.д Причем если код прост, понятен и удобен, то он скорее всего уже эффективен (я не имею ввиду использование плохих алгоритмов итд). Если действительно хочешь улучшить код, то это очень хороший совет Тут дело не в хиртостях "по типу этих ифов", а в всём дизайне, подумай как можно упростить код так, что бы не было необходимости передавать много параметров и писать длинные вложенные циклы с кучей if-ов (это называется "спагетти-код"). Например передавай ссылку на структуру, меняй в специализированных функциях только нужные переменные, а не все сразу. -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
nickless
1) Разбить большую функцию на много маленьких, помойму это очень удобно и разумно. 2) "Хитрости" тоже для удобства, и уменьшения длинны кода ( если он не длинный, с ним легче имхо работать ). 3) А насчет структур. А что плохого в передаче многих парметров. Стрктуры это уменьшение эффективности программы(время выполнения кода), и куча лишних строчей. Можешь раскритиковать, буду только благодарен ( я новечок в этом деле ) |
|||
|
||||
| MAKCim |
|
||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
а вот кстати проверил и получил такие результаты
разница налицо Добавлено через 2 минуты и 53 секунды
будешь когда-нибудь на WinAPI писать ( -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||
|
|||||||||||
| bsa |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Неудачный пример. Лучше попробовать такой:
Так как в твоем случае компилятор серьезную оптимизацию сделал. Замена 0 на 1 по флагу через:
|
||||||||||
|
|||||||||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: -1 Всего: 1 |
твоя прога написанна по принципу структурного программирования.. т.е. есть ряд данных и куча функций для работы с этими данными.. для улучшения наглядности да и последующего сопровождения я рекомендую следующее:
1. нарисовать блок схему (в крупных проектах она просто необходима, чтобы не сойти с ума) 2. перейти к Объектно Ориентированному Программированию (ООП) по блок схеме легко находить уязвимые места и это позволит абстрагироваться от кода, позволит сосредоточится на идеи.. это важняк!! не ленись делать блок схемы.. это так же важно как и комментарии.. первое приемущество ООП над структурированным программированием заключается в ИНКАПСУЛЯЦИИ данных в один объект, что повысит как читабельность так и управляемость.. и к тому же ты сможешь размножать эти объекты в любом количестве.. потом тебе на помощь придет НАСЛЕДОВАНИЕ и ПОЛИМОРФИЗМ, может, тоже придет.. учи ООП.. важняк!! ;) Это сообщение отредактировал(а) fish9370 - 31.5.2007, 20:54 -------------------- undefined |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
bsa,
это все понятно, я не спорю пример этот показательный и тривиальный: по сути на пустом месте в одном случае - оптимизация, во втором - работа через одно место Это сообщение отредактировал(а) MAKCim - 31.5.2007, 09:39 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| nickless |
|
||||||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Я тоже решил проверить, только со включенной оптимизацией
И никакой разницы -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
||||||
|
|||||||
| Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 0 Всего: 37 |
И ещё СТЛ. -------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |