[an error occurred while processing this directive] [an error occurred while processing this directive]
Понимаю и поддерживаю! Но не все:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Baser 04 апреля 2002 г. 13:16
В ответ на: Использование goto не зависит от используемого языка программирования(+) отправлено AlexD 04 апреля 2002 г. 00:34

>Так что переход с АСМа на Си не должен вызывать особых проблем,
>единственный фактор - психологический, попытка выполнять работу
>заместо компилятора. Это всё равно, что взять вместо молотка
>строительный пистолет, и забивать гвозди ударами его рукоятки :-)
>Ну, тут нет другого выхода, как взять себя за горло, и подавить
>это стремление на корню. Пусть Ваши программы поначалу будут не
>самыми эффективными, ничего, опыт приходит во время е..бы.

Осваивал Си года два назад и особых проблем не было. Но нехорошая, на Ваш взгляд, привычка смотреть, что там натворил компилятор осталась.
Мое мнение - если взял новый для себя компилятор, то надо изучить какие конструкции Си он понимает хорошо, а что лучше делать не нужно, ибо ни к чему хорошему это не приведет. А потом, когда это изучишь, уже можно и не смотреть, ну разве что в критичных случаях.

Вот последний пример: подсунул я давеча HT-PICC кусок кода на Си для вычисления CRC-16 (пример из какого-то Application Notes). Что мне компилер накомпилил! Тихий ужас! Раза в три длиннее, чем у меня была старая функция на асме. А CRC-16 вычисляется в прерывании, во время передачи следующего байта, каждая мкс на счету! Ну, объяснил компилеру поподробней, что я от него хочу и вот результат - только одна лишняя команда (хотя мне совершенно не понятно, почему оптимизатор ее не убрал - простейший случай).

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru