[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]

Отправлено Oldring 25 июня 2002 г. 16:11
В ответ на: Ответ: "Обычно...", снова "обычно...", а как же насчет "nonportable perversion"? Может не стоит надеяться на "обычно"? отправлено trainer 25 июня 2002 г. 14:16

Полагаться на совместимость компилятора со стандартом и уделать отдельное внимание случаям, где компилятор ведет себя нестандартно (из-за присущих ему глюков или из-за специально включенных нестандартных расширений) - это разумная практика.

Что такое "portable" как раз описывается в стандарте. Portable программа будет выдавать одинаковый результат вне зависимости от типа процессора и компилятора, если только компилятор совместим со стандартом языка. Решение с union как раз является nonportable потому, что результат может зависеть от типа процессора и даже от типа компилятора. Это не особенно важно, если работать только с IAR C для AVR, но если однажды захочется перенести программу на другой процессор/компилятор - возникнут излишние сложности, которых было легко избежать. perversion - потому что в С есть гораздо более естественные способы сказать, что из двух байт конструируется 16-битное целое число - те, которые обсуждались.

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

Ответы



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

E-mail: info@telesys.ru