static int func(); ... int func() { } As result, func needs to be static.
struct { union { int a,b; }; int c; } sss = { 1,2 }; This had previously assigned 1,2 to a,b and 0 to c which is wrong.