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



How to initialize union variables in C How to initialize union variables in C Reviewed by Mursal Zheker on Sabtu, Januari 11, 2014 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.