void (*func_ptr_array[10])(int, int);
int (*arr_func_ptr[5])(void);
void (**ptr_to_arr_func_ptr[10])(void);
int (*get_function(void))(int);
void process(int (*callback)(int, int));
typedef int *int_ptr;
typedef int_ptr *int_ptr_ptr;
typedef int_ptr_ptr int_ptr_ptr_array[10];
int matrix[3][4][5];
int (*ptr_to_matrix)[4][5];
const volatile int cv_int;
volatile const int vc_int;
const int * const const_ptr_const_int;
volatile int * const const_ptr_volatile_int;
void func(int * restrict ptr1, int * restrict ptr2);