((char*)&foo[1]-(char *)&foo[0])/sizeof(type)
といつでも解釈して貰えると思ったらそれは違うだろ