Архитектуры разные бывают
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Oldring 13 марта 2003 г. 11:56
В ответ на: нет...об этом первый раз слышу. отправлено Romario 12 марта 2003 г. 21:55

Говорят, например, на креях все типы данных имеют один размер - 8 байт. Даже, char. Т. е. sizeof(double) == 1. Не зная об этом и не подумал бы, что такое нужно кому-нибудь. Оказывается, там нет встроенных операций доступа к отдельным байтам в памяти, соответсвенно, однобайтный доступ неэффективен, и лучше выделять на каждый символ 8 байт.

Есть ли реализации С, в которых обнуление при помощи memset не порождает нормальное число - не знаю. Стандарт требует, чтобы арифметика была двоичной, но позволяет кроме собственно двоичных разрядов иметь в представлении числа дополнительные служебные поля. Какой-нибудь дескриптор типа. Возможно, такое могло потребоваться на Эльбрусах.

Что же касается сравнения структур - то единственный законный путь - это сравнивать поэлементно. Как показывает опыт, обычно это не является достаточно большой проблемой, чтобы об этом много думать. Все остальное - это оптимизация, которая может работать, а может и не работать.

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

Ответы



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

E-mail: info@telesys.ru