2012-02-21 8 views
6

È il parametro in pthread_create(). Credo che ogni parte significa:Cosa significa "void * (*) (void *)" in C++?

  • void *: Il valore restituito è un puntatore nullo.

  • (*): È un puntatore a una funzione.

  • (void *): Prende un puntatore non tipizzato come parametro.

È corretto?

+2

basta controllare se stessi su cdecl.org. –

+0

Grazie, questo è un bel sito. – Marty

risposta

7

, è la firma di un puntatore a funzione senza nome che accetta e restituisce void *.

se avesse un nome (come in una variabile) sarebbe:

void *(*myFuncName)(void*) 
+0

Per quali compilatori è legale questa sintassi? Il pacchetto R igraph non viene compilato sul server CRAN Solaris a causa di un "errore di sintassi" relativo all'uso di "void (*) (void)": https://www.r-project.org/nosvn/R.check /r-patched-solaris-x86/igraph-00install.html – landau