non ho fatto in un istante!
Inizia con foo
e vai a destra.
float * (*(*
foo()
)[SIZE][SIZE])()
foo è una funzione senza argomenti ...
non può andare a destra dal momento che c'è una parentesi chiusa.Andate a sinistra:
float * (*(
* foo()
)[SIZE][SIZE])()
foo è una funzione senza argomenti restituisce un puntatore
non possono andare a sinistra ulteriormente, quindi cerchiamo di attraversare la parentesi e andare di nuovo a destra
float * (*
(* foo())
[SIZE][SIZE])()
float * (*
(* foo())[SIZE]
[SIZE])()
float * (*
(* foo())[SIZE][SIZE]
)()
foo è una funzione senza argomenti ritornano un puntatore a una matrice di matrici dimensioni del FORMATO ...
Chiusura parentesi raggiunto , nuovamente a sinistra per raggiungere il simbolo di un puntatore:
float * (
*(* foo())[SIZE][SIZE]
)()
foo è una funzione senza argomenti che ritornano un puntatore a un array di array dimensioni di puntatori dimensione per ...
nuovo
parentesi aperta, in modo che si attraversa e andare di nuovo a destra:
float *
(*(* foo())[SIZE][SIZE])
()
float *
(*(* foo())[SIZE][SIZE])()
foo è una funzione senza argomenti ritornano un puntatore a una matrice di matrici dimensioni di puntatori SIZE a una funzione senza argomenti ...
e lasciati alla fine
float * (*(* foo())[SIZE][SIZE])()
foo è una funzione senza argomenti che ritornano un puntatore a un array di array dimensioni di puntatori dimensione per una funzione senza argomenti restituisce un puntatore a galleggiare
E chi ha scritto che, si prega di insegnargli a usare typedef
:
// Function that returns a pointer to float
typedef float* PFloatFunc();
// Array of pointers to PFloatFunc functions
typedef PFloatFunc* PFloatFuncArray2D[SIZE][SIZE];
// Function that returns a pointer to a PFloatFuncArray2D
PFloatFuncArray2D* foo();
[regola spirale] (http://c-faq.com/decl/spiral.anderson.html) –
http://cdecl.org/ – juanchopanza
usa http://cdecl.org/ – 999k