Результаты поиска по запросу "offsetof"

3 ответа

Определение смещения байта члена структуры во время компиляции?

Я хочу найти смещение байта члена структуры во время компиляции. Например: struct vertex_t { vec3_t position; vec3_t normal; vec2_t texcoord; }Я хотел бы знать, что смещение байтаnormal есть (в этом случае должно быть12.) Я знаю, что я мог бы ...

4 ответа

Стандартный способ найти базовый адрес структуры от члена

3 ответа

Определение смещения байта члена структуры во время компиляции?

Я хочу найти смещение байта члена структуры во время компиляции. Например:

ТОП публикаций

6 ответов

 утверждают, что ни явно, ни неявно. Поправь меня, если я ошибаюсь.

р из реализации MSVC: #define offsetof(s,m) \ (size_t)&reinterpret_cast<const volatile char&>((((s *)0)->m)) // ^^^^^^^^^^^Как можно видеть, он разыменовывает нулевой указатель, который обычно вызывает неопределенное поведение. Это исключение из ...

1 ответ

По определению, сама структура находится по адресу 0. Из этого следует, что адрес поля, на которое указано (шаг 3 выше), должен быть смещением в байтах от начала структуры.

I C смещение определяется следующим образом. #define offsetof(st, m) \ ((size_t) ( (char *)&((st *)(0))->m - (char *)0 )) Почему это не вызовет ошибку сегментации, поскольку мы разыменовываем нулевой указатель? Или это своего рода хакерский ...