Is this a correct way to declare and call a function that uses a union as the argument, and pass it a value that is not declared as union? //declaring the function void myDumbFunction(union {unsigned int uint; signed int ssint; unsigned char[2] unchar}); // calling it from somewhere in my program unsigned int dumbvar; dumbvar =3D somedumbvalue; myDumbFunction(dumbvar); // the function void myDumbFunction(somevar){ if (somevar.unchar[1]) do_something(); } Is that going to work, the compiler should know that somevar is an unsigned int(not that it should matter since it's just memory space that is the size of the union), so within my function I can access somevar.uint somevar.ssint as well as somevar.unchar[0] and somevar.unchar[1] That all seem OK? I know that in most cases using a union serves no real purpose other than to be dangerous, there are other ways to do things. But my question is whether this is accurate or how it would be made correct if it isn't. Thanks, Bob --=20 http://www.fastmail.fm - Accessible with your email software or over the web --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .