独自の sizeof 演算子を実装しているときに、以下に示す 1 つの例に出くわしました。
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)
int main()
{
double x;
printf("%d", my_sizeof(x));
getchar();
return 0;
}
#define で (char *) を使用し、他の型キャストを使用しなかった理由がわかりません。記述された構文の正確な意味を知る必要があります。誰かがこれを理解するのを手伝ってくれますか..?
前もって感謝します。