On gcc/clang, long double use 10 bytes but take 16 bytes. It'd be good if this struct is 16 bytes but it's actually 32 bytes, wasting half of bandwidth.
struct {
long double x;
int id;
};
I tried to union two values, but since compiler assumes the whole 16 bytes used only by the long double, editing it sometimes modifies int.
Any good solution to pack them finely?