![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| _stranger_ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Где: город-герой Киев Репутация: 2 Всего: 2 |
Необходимо найти смещение элемента структуры в байтах относительно начала структуры, есть код который работает, не могу понять как
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Разбираем пошагово:
1. (type*)0 - получаем нулевой указатель (адрес = 0) на нашу структуру. 2. ->mem - обращаемся к заданному полю структуры. Что это значит? А это значит, что мы обращаемя к адресу, вычисляемому как сумма адреса структуры (у нас 0) и искомого смещения. Фактический доступ к этому адресу невозможен, но мы не используем mem как поле, мы затем лишь 3. & - получаем его адрес. Напомню он равен 0+смещение = (вспоминаем арифметику 4. (unsigned long) - адрес это указатель, а не число - нагло приводим к числовому типу. Всё. Надеюсь расписал понятно. |
|||
|
||||
| _stranger_ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Где: город-герой Киев Репутация: 2 Всего: 2 |
все понятно, я в принципе так и думал, но хотел убедиться в этом!!! спасибо Любителю !!! наверно тему можно закрыть
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |