typedef void (**MessageHandler)(void) MessageHandler;; // def messagehandler as pointer to func
struct AvcInMessage {
MessageHandler msgHandler;
byte dataSize;
byte data[8];
char description[20];
} InMessage[] = {
{
function1, <datasize>, {<byte0>, <byte1>, ..., }, "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.