Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
- enum Types {
- intType, doubleType, charType, empty
- };
- struct Tagged{
- enum Types types;
- union {
- int a; // if intType
- double b; // if doubleType
- char c; // if charType
- } value; // if empty
- };
- void print(struct Tagged *data) {
- for (struct Tagged *st = data; st < data + 5; st++) {
- switch (st->types) {
- case intType: printf("union containes int value: %d\n", st->value.a); break;
- case doubleType: printf("union containes double value: %f\n", st->value.b); break;
- case charType: printf("union containes char value: %c\n", st->value.c); break;
- case empty: printf("union contains nothing\n"); break;
- default: break;
- }
- }
- }
- int main() {
- struct Tagged data[5];
- data[0].types = 3;
- data[1].types = 3;
- data[2].types = 0;
- data[2].value.a = 5;
- data[3].types = 2;
- data[3].value.c = 'i';
- data[4].types = 3;
- print(&data);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment