[an error occurred while processing this directive]
На провокации-не поддаюсь :)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
``
10 октября 2005 г. 14:26
В ответ на:
красивенько - через класс. Надо ? :-))
отправлено DASM 10 октября 2005 г. 14:22
Составить ответ
|||
Конференция
|||
Архив
Ответы
Ответ: а почему все так ++ боятся??
—
orbital
(10.10.2005 14:34
217.151.131.15
,
пустое
)
Никто его не боится. Просто всему свое место.
—
SM
(10.10.2005 14:39
213.141.159.26
,
пустое
)
Да нет, тут как раз случай, когда С++ - красиво.
—
Михаил Е.
(10.10.2005 14:50
81.13.30.10
, 3718 байт)
Тогда уж лучше(+) )))
—
F8
(10.10.2005 18:34
213.130.10.11
, 635 байт)
Ну это на все случаи жизни. Избыточно по-моему в данном случае.
—
Михаил Е.
(11.10.2005 15:25
81.13.30.10
,
пустое
)
А чем плох (+)
—
†
(10.10.2005 15:14
81.23.109.150
, 211 байт)
Это не плохо, а очень плохо потому, что кроме "нужных" бит будут искажены и другие.
—
-Тумблер-
(10.10.2005 15:21
194.190.161.241
,
пустое
)
Это еще почему?
—
SM
(10.10.2005 15:23
213.141.159.26
,
пустое
)
пардон - это я ошибся.
—
-Тумблер-
(10.10.2005 15:24
194.190.161.241
,
пустое
)
Хотя есть грабли (+)
—
†
(10.10.2005 15:20
81.23.109.150
, 210 байт)
Ага, и это (cTemp) тоже внутрь дефайна усунуть.
—
SM
(10.10.2005 15:23
213.141.159.26
,
пустое
)
Можно и так. Но тогда его надо снаружи определять.
—
†
(10.10.2005 15:32
81.23.109.150
, 112 байт)
не надо снаружи (+)
—
SM
(10.10.2005 15:33
213.141.159.26
, 109 байт)
Ну и я причешу окончательно:
—
Сергей Борщ
(10.10.2005 16:33
195.13.250.109
, 319 байт)
Лучше брать - тогда можно пихать выражение без задней мысли. А почему do{}while(0) а не, например, if(1){}?
—
†
(10.10.2005 16:39
81.23.109.150
,
пустое
)
Попробовал и так и эдак. Разницы нет. Даже просто {} работает =)
—
†
(10.10.2005 16:42
81.23.109.150
,
пустое
)
Интересно. И даже не ругается на то, что после раскрытия макроса
—
Сергей Борщ
(10.10.2005 17:12
195.13.250.109
, 86 байт)
Вопрос снят общением по ICQ =)
—
†
(10.10.2005 17:24
81.23.109.150
,
пустое
)
Краткий конспект, если кому интересно.
—
Сергей Борщ
(10.10.2005 17:40
195.13.250.109
, 969 байт)
резюме.. мы пошйжем простым путем. Сами два часа по асе трахались вместо простого inline
—
DASM
(10.10.2005 18:16
217.118.78.1
,
пустое
)
мона... Забыл совсем =))
—
†
(10.10.2005 15:40
81.23.109.150
,
пустое
)
На мой взгляд это куда лучше - не менее понятно, проще описано, и код явно оптимальнее будет.
—
SM
(10.10.2005 15:19
213.141.159.26
,
пустое
)
да не будет. В данном случае порт один в системе - пишем static метод, this не передается, да и вообще не будет вызова (укажем inline). Один к одному ваши макросы станут в коде
—
DASM
(10.10.2005 15:23
217.118.78.1
,
пустое
)
Про инлайн - я не спорю. С инлайном оно красиво. Однако сколько лишнего текста - хотя бы само описание класса.
—
SM
(10.10.2005 15:25
213.141.159.26
,
пустое
)
Ответ: а мне лучше этот текст, потом код будет читабельнее и иногда это важнее чем лишний call
—
orbital
(10.10.2005 15:36
217.151.131.15
,
пустое
)
По мне лично макрос гораздо читабельнее, чем класс. Именно из-за его простоты описания и отсутствия лишнего.
—
SM
(10.10.2005 15:38
213.141.159.26
,
пустое
)
макросы плохи сами по себе. Для начала попробуй передай его как параметр в функцию ;-)
—
DASM
(10.10.2005 15:17
217.118.78.1
,
пустое
)
Запись в порт как параметр функции???
—
†
(10.10.2005 15:41
81.23.109.150
,
пустое
)
а что такого ??? Совершенно обычная практика
—
DASM
(10.10.2005 15:51
217.118.78.1
,
пустое
)
Может мы о разном?
—
†
(10.10.2005 15:54
81.23.109.150
,
пустое
)
видимо. Нужна функция void putPort (void (*pfoo)(int), int val) . Куда и КАК класть знвачение - не её забота. Этим занимается другая группа программистов.
—
DASM
(10.10.2005 16:06
217.118.78.1
,
пустое
)
Для этого нужно написать еще и READ_PORT :)
—
SM
(10.10.2005 15:20
213.141.159.26
,
пустое
)
Если вызов функции (call) для записи в порт это красиво.... Хоть бы inline добавили.
—
SM
(10.10.2005 14:53
213.141.159.26
,
пустое
)
А с размером?
—
-=ВН=-
(10.10.2005 15:19
194.190.181.231
,
пустое
)
Не на столько емкая операция, чтобы замена вызова ф-ции на инлайн-код сущесвенно увеличила программу. Если, конечно, программа это не одни записи в такой порт :)
—
SM
(10.10.2005 15:21
213.141.159.26
,
пустое
)
А вдруг, не один же раз он туда писать хочет:-) И все, туши фонарь. Тут над посчитать. Кол*N+внутренность функции с одной стрны, макрос(и т.д)*N с другой:-) Иначе один из Ваших критериев крастоты будет нарушен
—
-=ВН=-
(10.10.2005 15:27
194.190.181.231
,
пустое
)
Может получиться что иногда надо (пару-тройку раз в коде) кидать быстро-быстро - тут инлайнить, а еще в коде есть тыща раз где это пох - там лучше функцией. А вот как это в приплюсе написать перегрузив опер?
—
†
(10.10.2005 15:39
81.23.109.150
, 485 байт)
2 метода, как уже сказали. Только классы в деле вывода в порт, даже ракообразный, нужны, как зайцу рога:-)
—
-=ВН=-
(10.10.2005 15:44
194.190.181.231
,
пустое
)
Ответ:
—
†
(10.10.2005 15:47
81.23.109.150
,
пустое
,
ссылка
)
Может получиться что иногда надо (пару-тройку раз в коде) кидать быстро-быстро - тут инлайнить, а еще в коде есть тыща раз где это пох - там лучше функцией. А вот как это в приплюсе написать перегрузив опер?
—
†
(10.10.2005 15:37
81.23.109.150
, 364 байт)
написать 2 мебера типа std_out и fast_out
—
orbital
(10.10.2005 15:40
217.151.131.15
,
пустое
)
Два разных метода, один инлайн второй нет.
—
SM
(10.10.2005 15:40
213.141.159.26
,
пустое
)
эээ... Может я чего путаю, но
—
†
(10.10.2005 15:46
81.23.109.150
, 152 байт)
можно создать 2 разных класса каждый со своим оператором. а если сюда замешать vptr то вообще все красиво получиться :р
—
orbital
(10.10.2005 15:51
217.151.131.15
,
пустое
)
Я уж лучше по старинке. =))
—
†
(10.10.2005 15:54
81.23.109.150
,
пустое
)
Хотя... Если оплата программиста по количеству строк исходников отлаженного текста... Тогда есть наверно смысл.. =)))
—
†
(10.10.2005 16:02
81.23.109.150
,
пустое
)
да не барское это дело по портам лазить. Важно правильную стратегию выбрать, композицию провести :-))) А кодировать китайцы будут
—
DASM
(10.10.2005 16:10
217.118.78.1
,
пустое
)
Во-во, понятно теперь почему столько любителей cpp :) Побольше написать и при этом ничего не написать :)
—
SM
(10.10.2005 16:04
213.141.159.26
,
пустое
)
Не, ну там механизьм наследования, виртуальные функции, опять же. В общем оно неплохо, на C как-то громоздко получается. Иногда. Ну и потом, в критические дни есть испытанный путь. CPP-C-ASM-маш. коды-...:-)
—
-=ВН=-
(10.10.2005 16:12
194.190.181.231
,
пустое
)
У меня возникает желание провести маленький тестик.
—
†
(10.10.2005 16:23
81.23.109.150
, 355 байт)
мне иногда начинает казаться, что к примеру денег нет у тех, кто их экономно тратит. Так же и с прогами. Кто считает байты и циклы - тому их всегда не хватает ;-)
—
DASM
(10.10.2005 16:26
217.118.78.1
,
пустое
)
Увы, ты путаешь причину и следствие - когда денег нет начинаешь их экономно тратить. Когда байтов и циклов не хватат - начинаешь их считать. Это все очень логично. И никак не наоборот.
—
†
(10.10.2005 16:35
81.23.109.150
,
пустое
)
в том то и дело что нет. Когда экономишь - привыкаешь думать как сэкономить. Когда тратишь - начинаешь думать как заработать
—
DASM
(10.10.2005 16:38
217.118.78.1
,
пустое
)
До тебя еще никто не опровергал утверждение "съэкономленные деньги - заработанные деньги."
—
†
(10.10.2005 16:48
81.23.109.150
, 136 байт)
Нет. Экономить безполезно. Надо не экономить, а зарабатывать.
—
druzhin
(10.10.2005 17:49
80.92.98.198
,
пустое
)
я опять не согласен
—
orbital
(10.10.2005 16:06
217.151.131.15
,
пустое
)
А никак. Можно оператор и метод для разных вариантов :)
—
SM
(10.10.2005 15:49
213.141.159.26
,
пустое
)
Не - ну конечно - если надо вызывать хренову тучу раз, то тут еще поумать-взвесить надо. Что важнее.
—
SM
(10.10.2005 15:29
213.141.159.26
,
пустое
)
расовые предрассудки народных масс :-D
—
DASM
(10.10.2005 14:38
217.118.78.1
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru