Can someone explain maybe with simple examples about how structs and more importantly nesting a union in a struct works?

right now i have something like~

Code:
typedef struct Operator
{
	char symbol;
	int operands;
	union
	{
		void *f;
		double (*f0)(void);
		double (*f1) (double x);
		double (*f2) (double x, double y);
	}
}Operator;
the basic premise is it's a "calculator" of sorts... I'm using the struct to define various evaluations methods i have like addition/subtraction etc... The union comes in because the calculator needs to be versatile and should be able to work with any new functions i put in later. Being able to work with zeroary, unary, and binary operators simultaenously without needing to add new code...

I'm confused about the union completely I'm not really sure how it works. Structs I know a little about.