![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Proghat |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 16.1.2007 Где: Гомель, Беларусь Репутация: нет Всего: нет |
Как лучше писать и почему?
I вариант:
II вариант:
Внутри rec() n и c не изменяются. Это сообщение отредактировал(а) Proghat - 12.4.2009, 18:29 |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
попробуйте написать хотя бы 10 подобных функций с их использованием в обоих вариантах, сравните и сами увидите ответ на Ваши вопросы этой темы. ![]() |
|||
|
||||
Proghat |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 16.1.2007 Где: Гомель, Беларусь Репутация: нет Всего: нет |
Сравнивать по каким критериям? По времени работы, объему кода, занимаемой памяти? Это сообщение отредактировал(а) Proghat - 12.4.2009, 18:33 |
|||
|
||||
NDQuattro |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
Используйте их только в крайних случаях.
В их использовании таится возможность появления ошибок которые сложно выявить. |
|||
|
||||
Proghat |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 16.1.2007 Где: Гомель, Беларусь Репутация: нет Всего: нет |
Нужда в передачи массива - крайний случай? Добавлено: Указатели! : ). Извиняюсь. Это сообщение отредактировал(а) Proghat - 12.4.2009, 18:50 |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: -1 Всего: 69 |
передавайте в качестве параметра функции указатель на массив глобальные переменные - зло. |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Меня всегда радовали подобные вопросы))) Всё зависит от множества факторов - от конкретной задачи, от конкретной платформы, от конкретных рук. Напри пр программировании микроконтроллеров глобальные переменные намного лучше скажем переменных static как в плане скорости выполнения, так и скорости выполнения.....
|
|||
|
||||
Soah |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 18.2.2009 Репутация: нет Всего: 54 |
||||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Что-то в этом есть ![]() |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Любитель, ммм... имелось в виду "как в размере программы, так и в скорости выполнения"))) Просто как всегда пальцы работают быстрее мозга...
|
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
вы очень сильно облегчите себе жизнь, если ваши ф-ии, по возможности, будут реентерабельными, то-есть результат должен зависеть только от параметров и ни от чего больше
|
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Lazin, очень сложно такое сделать, если функции являются обработчиками прерываний, обработчиками собитий (связанных с приёмом программы сообщений ОСи), главных функций потоков....
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
UniBomb, +1
везде где есть callback'и без глобальных переменных (в том или ином виде) не обойтись |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
про обработчики прерываний я согласен, а с остальным - нет
Очень даже обойтись, с помощью правильного дизайна приложения ![]() К примеру, есть у тебя ф-я обратного вызова, которая вызывается при подключении нового клиента, ну так почему-бы не передать в эту ф-ю указатель(ссылку) на новое соединение, и на объект сервер, в общем, на все что может понадобиться этой ф-ии что-бы сделать свою работу? Если нет ограничений на сигнатуру ф-ии, то можно делать все что угодно, если это какая-либо API ф-я то тут то-же не все потеряно, к примеру ф-я передаваемая в CreateThread должна получать указатель, через этот параметр можно передать все что угодно, GetQueuedCompletionStatus может получать два указателя, которые передаются в ф-ю пользователем и тд.. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
Интересно, а что делать в случае WndProc? Она объявлена как:
Lazin, а фотка симпатичной девушки на аватарке с какой периодичностью меняется?.. |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |