typedef union {
  struct {
    int i_max_value;
    int i_min_value;
  };
  struct {
    unsigned ui_max_value;
    unsigned ui_min_value;
  };
  struct {
    float f_max_value;
    float f_min_value;
  };
} range_t;

typedef struct {
  int   mi_;
  range_t mi_range;
} map_item_t;



int main()
{
   map_item_t item = {0, .mi_range.f_max_value=3.14, .mi_range.f_min_value=.42};
   printf ("%f\n", item.mi_range.f_min_value);
   return 0;
}
