[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Полагаться на совместимость компилятора со стандартом и уделать отдельное внимание случаям, где компилятор ведет себя нестандартно (из-за присущих ему глюков или из-за специально включенных нестандартных расширений) - это разумная практика.
Что такое "portable" как раз описывается в стандарте. Portable программа будет выдавать одинаковый результат вне зависимости от типа процессора и компилятора, если только компилятор совместим со стандартом языка. Решение с union как раз является nonportable потому, что результат может зависеть от типа процессора и даже от типа компилятора. Это не особенно важно, если работать только с IAR C для AVR, но если однажды захочется перенести программу на другой процессор/компилятор - возникнут излишние сложности, которых было легко избежать. perversion - потому что в С есть гораздо более естественные способы сказать, что из двух байт конструируется 16-битное целое число - те, которые обсуждались.
E-mail: info@telesys.ru