LINUX.ORG.RU
Ответ на: комментарий от anonymous

>(&b.buf - &b)

Как же их можно вычитать, если они разных типов? Если же привести к (char*), например, то все равно неверно, т.к. поля по идее могут быть выровнены как угодно(лишь бы одинаково во всех переменных этого типа).

Murr ★★
()
Ответ на: комментарий от Murr

Какие типы еще? Это же макрос. Там вычитается адреса, те 32битные значения. Так что, &b.buf-&b будет равен равен размеру size_t Для обобщения этого правила структуру нужно плотно упаковать

Chumka ★★★
()
Ответ на: комментарий от Chumka

>Там вычитается адреса

Нет в С такого понятия как адреса. Есть понятие указателя. Разность между однотипными указателями - количество объектов этого типа между указателями.

Murr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.