You can decode this from the inside:
int *(*table())[30];
Inner binding table(), which is a function with undefined arguments. The next level *table(), therefore, tablereturns a pointer to something. The next level (*table())[30], so it returns a pointer to an array 30 lines long. The next level *(table())[30], so it returns a pointer to an array of 30 lines long pointers to something. At the last level, a type specifier is added int *(*table())[30].
, table - ( ), 30 int.