The following declaration yeilds an "illegal member use" error for both f and next under the compilers on both by PC and my 3B1 and I can't seem to understand why. Amybody feel pedegogical ? jms typedef struct m_i { int type; union { int (*f)(); struct m_i *next; } } menu[10];