Message Interpreter and Handler - How to store a function name in a struct?
typedef void (*MessageHandler)(void);   // def messagehandler as pointer to func

struct AvcInMessage {
  MessageHandler  msgHandler;
  byte            dataSize;
  byte            data[8];
  char            description[20];
} InMessage[] = {
   {
      function1, &lt;datasize&gt;, {&lt;byte0&gt;, &lt;byte1&gt;, ..., }, "DescriptionHere"
   },
   // etc, for however many elements InMessage[] has.
};


The typedef defines a "pointer to function of void returning void" - fix up the argument count and types, and the return type to your needs. We're assuming each element's function has the same kind of arglist and return type. (Update: Sorry for the bug in my first iteration).

The next statement both defines the array of struct and initializes N of them. Provide an element count in the [] if you don't have a full set of initializers at compile time.