In C89, you can only initialize the first member of a union within a declaration. Unfortunately, that is the S_un_b UCHAR array for the S_un union inside struct in_addr. So we have to initialize it with each UCHAR member of Address.