Я попытался реализовать оператор sizeof. Я сделал это таким образом.
#define my_sizeof(x) ((&x + 1) - &x)
Но он всегда заканчивался тем, что давал результат как "1" для любого типа данных.
У меня тогда был googled для этого.. и я нашел код typecasted
#define my_size(x) ((char *)(&x + 1) - (char *)&x)
И код работает, если это придумано.. Я не понимаю, почему.. Этот код также PADDING STRUCTURE отлично.
Он также работает для
#define my_sizeof(x) (unsigned int)(&x + 1) - (unsigned int)(&x)
Может кто-нибудь объяснить, как это работает, если typecasted и если не typecasted?
Спасибо заранее.