Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Для кульных хацкеров :D
Отправлено
Oldring
19 июля 2009, г. 18:48
В ответ на:
Вот именно - описано двумя абзауами в стандарте и разжёвано двумя страницами в K&R, но это уже "трюк", достойный специального сайта трюков. (+)
отправлено пользователем
ReAl
19 июля 2009, г. 18:46
Составить ответ
|
Вернуться на конференцию.
Ответы
О, я ещё один трюк знаю - если взять верёвку, навязать на ней через одинаковые расстояния узлы, взять отрезки на 3, 4 и 5 межузловых расстояний и слепить треугольник, то на стыке 3- и 4- отрезков будет прямой угол.
-
ReAl
(19.07.2009, 18:55:46
89.162.152.53
, 343 байт)
"Там важно не так отсутсвие break, как взаимопроникновение двух операторов. Не с точки зрения решаемой задачи, естественно, для неё отсутствие break важно, а с точки зрения нетривиальности использования языковых конструкций."
-
ReAl
(19.07.2009, 20:21:22
89.162.152.53
,
пустое
)
Тьху, и я промахнулся.
-
ReAl
(19.07.2009, 20:32:26
89.162.152.53
,
пустое
)
Вот-вот, не всяк знает такое. Назовите книгу, плиз, где среди описания операторов языка Си а примере приведена идиома типа (x)||f();
-
VasilyS
(19.07.2009, 19:12:18
80.92.96.25
,
пустое
)
В последний раз - если человек понимает работу if( x || f() ) {} то он должен без труда понять и работу части этой записи - "голого" выражения (x || f()), результат вычисления которого отбрасывается за ненадобностью, как и результат вычисления присваивающего выражения a = b; Второе чаще применяется "само по себе", но бывает и как x = a = b; и как if( a = b) {}. Первое чаще стоит под if(), но может применяться само по себе. Принципиальной разницы
-
ReAl
(19.07.2009, 19:49:37
89.162.152.53
, 34 байт)
Хорошо. В последний раз и я. Думаю, что перестановка бит, swap 2 переменных без участия третьей, itoa, Cишный JMP 0, трюки со стеком и выходом из прерываний, машина Даффа, хитрые макросы есть предмет этой конфы. Пример приведен чтобы Ющенко выздоровел, кровавая гебня наконец унялась, а заходящие в эту конфу не плевались. Почему никто не проводит здесь культуртрегерскую работу. Заодно, уверен, кому-то трюк с || в диковинку.
-
VasilyS
(19.07.2009, 19:59:44
80.92.96.25
,
пустое
)
Цитату из стандарта, говорящую, что выражение с || вычисляется таким-то и таким-то образом я уже приводил. В том месте стандарта не уточняется - обязан результат выражения использоваться под if() или в виде flag = x || f(); или вообще выражение может стоять само по себе (как обычно и стоят присваивающие выражения), так что порядок вычисления выражения не зависит от того, стоит оно одно или (+)
-
ReAl
(19.07.2009, 19:59:2
89.162.152.53
, 818 байт,
ссылка
)
Здесь - да, уверен, идет для многих как откровение, как фокус. Вспомните, тут люди не понимают различий jmp 0 из обработчика для AVR и 51. Здесь начинающим - примерами содержащими ключи __eeprom советуют пользоваться без предупреждения об опасности. Вым ли этого не знать, не знать сегодняшнего уровня этой конфы?
-
VasilyS
(19.07.2009, 20:07:54
80.92.96.25
,
пустое
)
Не думаю что можно мало-мальски серьезно программировать на любых алголоподобных языках программирования не имея понятия про побочные эффекты выражений и про порядок их вычисления.
-
Oldring
(19.07.2009, 18:59:48
91.76.59.152
,
пустое
)
Но ты-то, оказывается, НЕ ЗНАЛ о switch без break в размотке циклов. :-) Мели дальше, Емеля. Соском жил, соском и помреж :-)
-
VasilyS
(19.07.2009, 19:09:18
80.92.96.25
,
пустое
)
Чего-чего я не знал? :D Продолжай - я смеюсь.
-
Oldring
(19.07.2009, 19:14:18
91.76.59.152
,
пустое
)
Повторяю для дурака: Размотка (иногда говорят - раскрутка) циклов с помощью устройства Даффа (циклосодержащая конструкция switch без break). http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%BE%D1%82%D0%BA%D0%B0_%D1%86%D0%B8%D0%BA%D0%BB%D0%B0
-
VasilyS
(19.07.2009, 19:19:8
80.92.96.25
,
пустое
)
Вот правильная ссылка, а не то что ты думаешь.
-
Oldring
(19.07.2009, 19:25:29
91.76.59.152
,
пустое
,
ссылка
)
Чудиииик.... Я ж про размотку. Да и с моей сцылки туда ход идёт, ибо Дафф - лишь механизм.
-
VasilyS
(19.07.2009, 19:33:46
80.92.96.25
,
пустое
)
Ты просто до сих пор понять не можешь весь прикол реализации Даффа - передача управления по сase меткам внутрь тела вложенного цикла.
-
Oldring
(19.07.2009, 19:36:30
91.76.59.152
,
пустое
)
Опять пальцем в попу... Я ж сказал "циклосодержащий switch". Это ж ясно. Удивительно почему не дошло.
-
VasilyS
(19.07.2009, 19:40:32
80.92.96.25
,
пустое
)
http://www.telesys.ru/wwwboards/mcontrol/2426/messages/818452.shtml
-
ReAl
(19.07.2009, 19:11:37
89.162.152.53
,
пустое
,
ссылка
)
Не понял. Это я читал.
-
VasilyS
(19.07.2009, 19:14:4
80.92.96.25
,
пустое
)
Во, это тут надо: "Там важно не так отсутсвие break, как взаимопроникновение двух операторов. Не с точки зрения решаемой задачи, естественно, для неё отсутствие break важно, а с точки зрения нетривиальности использования языковых конструкций."
-
ReAl
(19.07.2009, 20:32:57
89.162.152.53
,
пустое
)
Нетривиальной будет задача привязки этого трюка к задаче с изменяющимся во время выдачи числа выдаваемых байт:-) В этом смысле она слабее чем простой цикл с *х =*у++,
-
VasilyS
(19.07.2009, 20:51:38
80.92.96.25
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru