Intel Corporation Interview Question

In C, what is the difference between a Union and a Struct? Is it possible to create a class in C with a function specifically for that class like in an object oriented language? E.x. in c# if you have: public class a{ int a, b; function add(int a, int b){ return a+b; } } How would you create something similar in c with a struct?