реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Объясните кусок кода
ZEbr
сообщение Sep 3 2013, 17:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Что вот эта структура обозначает, совсем забыл)))
unsigned short *x;
x=(unsigned short*) &Y;
Y структура в которой есть int, short, float.
и потом я записывается в массив методом x++.
Заранее спасибо!
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Sep 3 2013, 18:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Код
x=(unsigned short*) &Y;

переменную х привели к типу указатель и передали в х адрес Y.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 3 2013, 18:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

Только саму x ни к чему не приводили. В x был занесен адрес Y с приведением типа.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Sep 3 2013, 18:37
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



да, извиняюсь, вечер) конечно же, Y привели к типу.
Go to the top of the page
 
+Quote Post
ZEbr
сообщение Sep 3 2013, 19:09
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Извиняюсь.Так адрес привели к типу или само значение Y привели к типу unsigned short?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 3 2013, 19:40
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Адрес, но не к unsigned short, а к указателю на оный.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Sep 3 2013, 19:43
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



сам адрес привели к типу указатель на unsigned short. т.е. сказали, что в данной переменной х будет лежать адрес переменной Y, которая unsigned short.
Но может меня кто и поправит

Сообщение отредактировал Метценгерштейн - Sep 3 2013, 19:43
Go to the top of the page
 
+Quote Post
Lagman
сообщение Sep 4 2013, 12:09
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(ZEbr @ Sep 3 2013, 21:33) *
Y структура в которой есть int, short, float.
и потом я записывается в массив методом x++.

После x=(unsigned short*) &Y уже не важно какие типы были в структуре Y, если short это 2байта то по x++ будет присваиваться значения начиная с адреса Y по +2 байта и какая переменная в структуре измениться зависит от того как с ней работает компилятор, "упакована" ли или "отсортирована" ли структура в памяти.
Go to the top of the page
 
+Quote Post
lbm
сообщение Sep 20 2013, 08:10
Сообщение #9





Группа: Участник
Сообщений: 12
Регистрация: 13-01-11
Пользователь №: 62 213



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


одно уточнение:
если написать x++ то изменится адрес в хранящийся в указателе x на размер типа short (т.е. на 2 байта)
а чтобы увеличить значение данных по адресу хранящемуся в указателе
необходимо написать (*x)++
Go to the top of the page
 
+Quote Post
Lagman
сообщение Sep 20 2013, 11:37
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



ага, это и имел ввиду
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01426 секунд с 7
ELECTRONIX ©2004-2016