реализация оператора 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?
Заранее спасибо..