#define NAMELENGTH 20
#include <string.h>
#include <stdio.h>

typedef char name_t[NAMELENGTH];
typedef int boolean;
#define TRUE 1
#define FALSE 0

typedef struct {
	int age;
	name_t name;
	float weight;
	int num_bones;
	} dog;

typedef struct {
	name_t color;
	boolean salt_water;
	} fish;

typedef struct {
	int age;
	name_t name;
	float weight;
	} cat;
	
union pet { dog mydog;
			   fish myfish;
				cat mycat;
				};

int main () {
	union pet rover;
	
	rover.mydog.age = -9;
	strcpy (rover.mydog.name, "Basbeaux");
	rover.mydog.num_bones = 4;
	
	/* rover.mycat.num_bones = 5; doesn't compile */
	printf ("Rover's color is %s", rover.myfish.color); 
	
	return 0;
	}

	