реализация оператора sizeof

Я попытался реализовать оператор sizeof .. Я сделал таким образом ..

#define my_sizeof(x) ((&x + 1) - &x)

Но он всегда заканчивался тем, что давал результат как «1» для любого типа данных.

Я тогда гуглил это для этого .. и я нашел кодtypecasted

#define my_size(x) ((char *)(&x + 1) - (char *)&x)

И код работает, если он является типизированным .. Я не понимаю, почему .. Этот код также идеально подходит для структуры ..

Это также работает для

#define my_sizeof(x) (unsigned int)(&x + 1) - (unsigned int)(&x)

Может кто-нибудь объяснить, как это работает, если Typecasted и если не Typecasted?

Заранее спасибо..

Ответы на вопрос(8)

Ваш ответ на вопрос