How to initialize union variables in C


Let us see all possible ways to initialize a union variable.  Please remember that we can access one data member at a time in the case of union.

Method 1:
union value {
     int x;
     float y;
};
union value obj = {5};

Here, initialization is done after union definition.  5 is assigned to the member x of union variable obj.

Method 2:
union value {
     int x;
     float y;
}obj = {5};

Here, initialization is done while defining the union.  5 is assigned to the member x of union variable obj.

Method 3:
union value {
     int x;
     float y;
};
union value obj = {.y = 5.0};

Here, initialization is done after union definition.  5.0 is assigned to the member y of union variable obj.  And we have used dot(.) operator for initialization.

Method 4:
union value {
     int x;
     float y;
};
union value obj = {y:5.0};

This method is similar to method 3.  Here, color(:) is used instead of '=' and period before union member is removed

Example C program to illustrate union variable initialization:

  #include <stdio.h>
  union value {
        int x;
        float y;
  }obj1 = {5};  //initializing union variable

  int main() {
        /* declaration and initialization for union variables */
        union value obj2 = {6};
        union value obj3 = {.y = 7.1};
        union value obj4 = {y:8.2};

        /* printing the values */
        printf("obj1.x : %d\n", obj1.x);
        printf("obj2.x : %d\n", obj2.x);
        printf("obj3.y : %f\n", obj3.y);
        printf("obj4.y : %f\n", obj4.y);
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  obj1.x : 5
  obj2.x : 6
  obj3.y : 7.100000
  obj4.y : 8.200000

Comments

Popular posts from this blog

textcolor in c

wherex in c

traffic light program in c, traffic light simulation