Red de conocimiento informático - Problemas con los teléfonos móviles - void (*isr_handle_array[50])(void); Por favor, comprenda cómo entender esta declaración.

void (*isr_handle_array[50])(void); Por favor, comprenda cómo entender esta declaración.

Esta es una matriz de punteros de función. Quítelo capa por capa.

Esta es una matriz de punteros de función. El valor de retorno de estas funciones es nulo y los parámetros también lo son. Si observa [50] en el interior, sabrá que se trata de una matriz. Si observa los punteros de función en el exterior, se suman a una matriz de punteros de función. Escribiré el código fuente y lo entenderás. #include?lt; stdio.hgt;

Esta es la matriz de puntero de función en su pregunta

void?(*isr_handle_array[50])(void);?

// Esta es una función con dos valores de retorno y el parámetro void también es void

void?hello(void)?{?printf?("hello?");}

¿vacío?mundo(vacío)?{?printf("mundo/n");}

int?main()

{

/ Aquí, las direcciones de las funciones hello? y world se guardan en una matriz

isr_handle_array[0]?=?hello;

isr_handle_array[1]?=?world;

p>

//Aquí puedes llamar a la función directamente desde la matriz.

isr_handle_array[0]();

isr_handle_array[1]();

retorno?0; >

Ejecutar de la siguiente manera: