struct + anonymous union alternative for var_t