ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
308696 Топик полностью
бомж (18.02.2012 23:27, просмотров: 102) ответил Cepгeй Бopщ на Не, это не является нормальной практикой. Это хак, который работает по-разному на разных архитектурах (на больших и маленьких индейцах, для структур - еще и на архитектурах с разным выравниванием). Стандарт говорит, что в union можно хранить
Объединение применяется для следующих целей:  - инициализации используемого объекта памяти, если в каждый момент времени только один объект из многих является активным; - интерпретации основного представления объекта одного типа, как если бы этому объекту был присвоен другой тип. Память, которая соответствует переменной типа объединения, определяется величиной, необходимой для размещения наиболее длинного элемента объединения. Когда используется элемент меньшей длины, то переменная типа объединения может содержать неиспользуемую память. Все элементы объединения хранятся в одной и той же области памяти, начиная с одного адреса. Пример: union { char fio[30]; char adres[80]; int vozrast; int telefon; } inform; union { int ax; char al[2]; } ua; При использовании объекта infor типа union можно обрабатывать только тот элемент который получил значение, т.е. после присвоения значения элементу inform.fio, не имеет смысла обращаться к другим элементам. Объединение ua позволяет получить отдельный доступ к младшему ua.al[0] и к старшему ua.al[1] байтам двухбайтного числа ua.ax Госкомитет Российской Федерации по высшей школе Тамбовский Государственный Технический Университет Ю.Ю.Громов, С.И.Татаренко ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ СИ Утверждено ученым советом университета в качестве учебного пособия Тамбов, 1994 УДК 519.682.2 ББК з973-018.2(Си)я73 Громов Ю.Ю.,Татаренко С.И. Программирование на языке СИ: Учебное пособие. -Тамбов,1995.- 169 с.
memento mori