Your code is valid in C99+, but not in C89. C99 allows unnamed struct/union types in sizeof . C89 does not support anonymous structs expressions.
sizeof