I don't see a portability issue here
What I meant is on a new platform the assert can fail because the alignment changed (e.g. 32 vs 64 bit), and now you need to rearrange the struct to make all platforms happy. Whereas always using `sizeof + sizeof` doesn't have this problem.
Anyway, I will add the asserts, just feel this isn't the optimal way of using flexible members.