Sto avendo davvero molto tempo a comprendere la sintassi per i puntatori di funzione. Quello che sto cercando di fare è avere una serie di puntatori di funzioni, che non accettano argomenti e restituisce un puntatore vuoto. Qualcuno può aiutarti?Array of function pointers in C
risposta
Prima di tutto, si dovrebbe conoscere
cdecl
:cdecl> declare a as array 10 of pointer to function(void) returning pointer to void void *(*a[10])(void)
È possibile farlo a mano - basta costruire dall'interno:
a
è un array:
a[10]
di puntatori:
*a[10]
alle funzioni:
(*a[10])
che assumono senza argomenti:
(*a[10])(void)
re girando
void *
:void *(*a[10])(void)
E 'molto meglio se si utilizzano
typedef
per rendere la vita più facile:typedef void *(*func)(void);
E poi fare la matrice:
func a[10];
Nota: il link all'inizio è molto utile! – Ziezi
Usa typedef
s
typedef void* func(void);
func *arr[37];
Ogniqualvolta la sintassi composta diventa troppo complicata, un typedef di solito cancella le cose.
E.g.
typedef void *(* funcPtr)(void);
funcPtr array[100];
Quali senza il typedef Credo che sarebbe simile:
void *(* array[100])(void);
Partenza http://www.newty.de/fpt/fpt.html#arrays per esempi e spiegazioni di array di puntatori a funzione C e C++.
Inizia con il nome della matrice e il tuo lavoro fuori, ricordando che []
e ()
legano prima *
(*a[]
è un array di puntatore, (*a)[]
è un puntatore ad un array, *f()
è una funzione che restituisce un puntatore, (*f)()
è un puntatore a una funzione):
farr -- farr
farr[N] -- is an N-element array
*farr[N] -- of pointers
(*farr[N])( ) -- to functions
(*farr[N])(void) -- taking no arguments
*(*farr[N])(void) -- and returning pointers
void *(*farr[N])(void); -- to void
- 1. Function Pointers in Java
- 2. ISO C Void * e Function Pointers
- 3. Vector of smart pointers chiamata del distruttore
- 4. C# Array of Classes
- 5. Ottieni decltype of function
- 6. C - initialize array of structs
- 7. Deserialize json array of dictionaries in C#
- 8. "Array of array" in MATLAB?
- 9. AngularJS Array of Promises
- 10. Posso creare un puntatore Array of Char in C?
- 11. Visual Studio Jump to Beginning of Function
- 12. Rubymotion e Pointers to Structs
- 13. sum of array column
- 14. Marshall array of structures
- 15. Qual è la differenza tra Function Pointer vs Function Call?
- 16. pointers vuoti e libreria ffcall
- 17. Array of struct e sizeof
- 18. C sqrt function programmazione
- 19. Array of methods: Adapter Pattern?
- 20. Array of Strings in Fortran 77
- 21. Riferimenti in Perl: Array of Hashes
- 22. Iterating Array of Objects in javascript
- 23. Sort ArrayList of Array in Java
- 24. Array of SqlParameters Sized/Typed
- 25. Array of struct a Swift
- 26. Pointers vs auto_ptr vs shared_ptr
- 27. Exploding by Array of Delimiters
- 28. C readline function
- 29. C++ TerminateProcess function
- 30. C# ModInverse Function
Generalmente riceverai una risposta migliore se pubblichi un codice che hai provato, anche se non funziona, e ti spieghi meglio che puoi esattamente quale sia il problema. Dimostra più impegno da parte tua. –
controlla questo [link] (http://c-faq.com/decl/spiral.anderson.html) – Vikram