Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Объясните кусок кода
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
ZEbr
Что вот эта структура обозначает, совсем забыл)))
unsigned short *x;
x=(unsigned short*) &Y;
Y структура в которой есть int, short, float.
и потом я записывается в массив методом x++.
Заранее спасибо!
Метценгерштейн
Код
x=(unsigned short*) &Y;

переменную х привели к типу указатель и передали в х адрес Y.
aaarrr
Цитата(Метценгерштейн @ Sep 3 2013, 22:24) *
переменную х привели к типу указатель и передали в х адрес Y.

Только саму x ни к чему не приводили. В x был занесен адрес Y с приведением типа.
Метценгерштейн
да, извиняюсь, вечер) конечно же, Y привели к типу.
ZEbr
Извиняюсь.Так адрес привели к типу или само значение Y привели к типу unsigned short?
aaarrr
Адрес, но не к unsigned short, а к указателю на оный.
Метценгерштейн
сам адрес привели к типу указатель на unsigned short. т.е. сказали, что в данной переменной х будет лежать адрес переменной Y, которая unsigned short.
Но может меня кто и поправит
Lagman
Цитата(ZEbr @ Sep 3 2013, 21:33) *
Y структура в которой есть int, short, float.
и потом я записывается в массив методом x++.

После x=(unsigned short*) &Y уже не важно какие типы были в структуре Y, если short это 2байта то по x++ будет присваиваться значения начиная с адреса Y по +2 байта и какая переменная в структуре измениться зависит от того как с ней работает компилятор, "упакована" ли или "отсортирована" ли структура в памяти.
lbm
Цитата(Lagman @ Sep 4 2013, 16:09) *
После x=(unsigned short*) &Y уже не важно какие типы были в структуре Y, если short это 2байта то по x++ будет присваиваться значения начиная с адреса Y по +2 байта и


одно уточнение:
если написать x++ то изменится адрес в хранящийся в указателе x на размер типа short (т.е. на 2 байта)
а чтобы увеличить значение данных по адресу хранящемуся в указателе
необходимо написать (*x)++
Lagman
ага, это и имел ввиду
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.