Подтвердить что ты не робот

Sizeof struct struct

Как я могу получить размер члена в структуре в C?

struct A
{
        char arr[64];
};

Мне нужно что-то вроде этого:

SizeOf (А:: обр)

спасибо

4b9b3361

Ответ 1

sizeof(((struct A*)0)->arr);

Вкратце, нарисуйте нулевой указатель на тип struct A*, но поскольку операнд sizeof не оценивается, это законно и позволяет получить размер элементов структуры без создания экземпляра структуры.

В принципе, мы притворяемся, что его экземпляр существует по адресу 0 и может использоваться для определения смещения и sizeof.

Чтобы подробнее разобраться, прочитайте эту статью:

http://www.embedded.com/design/prototyping-and-development/4024941/Learn-a-new-trick-with-the-offsetof--macro