me encontré con esta línea:¿Qué significa esta declaración C?
void (*(*x)(void (*[10])(int *)))(int *)
Alguien puede decirme de qué se trata?
me encontré con esta línea:¿Qué significa esta declaración C?
void (*(*x)(void (*[10])(int *)))(int *)
Alguien puede decirme de qué se trata?
Para descomponerlo mismo, inicio desde el más interno paréntesis y trabaja para salir.
(*[10])
< ---- array de 10 punteros(*[10])(int *)
< ------ array de 10 punteros a funciones que tiene un puntero a int
como su argumento(void (*[10])(int *))
< --- --- array de 10 punteros a funciones que tiene un puntero a int
como su argumento y devuelve void
(*x)(void (*[10])(int *))
< ------- x
es un puntero a una fu nción que tiene como argumento (un array de 10 punteros a funciones que tiene un puntero a int como argumento y devuelve void
).....
que se detuvo a medias a través, pero es de esperar que ayuda
Resumiría esto si tuviera más votos para usar hoy. –
Me gustaría ir a tomar un café si no hubiera tenido una taza recientemente. –
Un puntero a una función que tiene un arreglo de 10 punteros a funciones que tiene int * argumento y volver tipo void como argumento y devuelve un puntero a una función que tiene int * argumento y retorno tipo vacío.
La pregunta final es, ¿cómo harías para descubrir eso, si no tuvieras esto? –
@TonyTheLion, no hay preguntas sobre por qué alguien escribiría una cosa así sin descomponerla en pedazos más pequeños. –
cdecl es muy útil para este tipo de cosas. Dice:
declarar ax como puntero a la función (matriz 10 de puntero a la función (puntero a int) devolver void) volviendo puntero a la función (puntero a int) el regreso de vacío
Puede encontrar explicaciones aquí:
¿Es esta una prueba o algo? :) – FailedDev
Ese es fácil de responder: es un desastre. –
La respuesta siempre es http://www.cdecl.org. – mkb