Declaration standard types not difficult to understand
int a;
But how understood this declaration?
char *(*(**m[][8])())[];
char *(*(**m[][8])())[]; - m it is...char
char *(*(**m[][8])())[]; - m it is an array...char
char *(*(**m[][8])())[]; - m it is an array of arrays...char
char *(*(**m[][8])())[]; - m it is an array of arrays of 8 pointers...char
char *(*(**m[][8])())[]; - m it is an array of arrays of 8 pointers to pointer...char
char *(*(**m[][8])())[]; - m it is an array of arrays of 8 pointers to pointer to function... char
char *(*(**m[][8])())[]; - m it is an array of arrays of 8 pointers to pointer to function wich return...char
char *(*(**m[][8])())[]; - m it is an array of arrays of 8 pointers to pointer to function wich return pointer to array...char
char *(*(**m[][8])())[]; - m it is an array of arrays of 8 pointers to pointer to function wich return pointer to array of pointers to char.
...fuh...
more about this here.
int a;
But how understood this declaration?
char *(*(**m[][8])())[];
...fuh...
more about this here.