ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
93073 Топик полностью
FDA (02.07.2007 08:53, просмотров: 1) ответил Petr_ на Про указатели - согласен. Но если union - то передача структур. Хотя можно привести и другие примеры, где union смотрится не так уж плохо.
Использование юнионов оправдано в тех случаях, когда они позволяют обойтись без указателей! Зачем мне указатель, если я могу сделать тоже самое при помощи структуры и юниона? Зачем мне лишние звёздочки и т.п.??? Кроме того, не стоит забывать, что в языке Си массивы и указатели суть одно и тоже!!! Это я говорю конкретно Gamma_Spb! Так что в данном случае обращение к массиву raw и использование указателя на структуру с приведением к типу char будет работать абсолютно одинаково! Только в случае указателей Вы получите кучу звёздочек и трудночитаемый код, а в случае применения юниона избавитесь от этого геморроя! Кроме того, почему-то никто не задумался, а кто формирует пакеты данных для микроконтроллера! Я, например, пишу программы на Delphi и мне очень удобно просто переписать эти структуры в виде: TPultParams = packed record case Byte of 1 : (s : packed record InputTO : Word; LcdTO : Word; MsgBoxTO : Word; ProgMetkaEnabled : ByteBool; Reserved : Byte; end; ); 2 : (raw : array [0..7] of Byte); end; Получается всё едино!