Duchamp
27-05-2010, 19:47
Buona sera.
Vorrei realizzare una funzione callback alla quale si possa passare un puntatore a void, un po' come si fa al momento di una creazione di un thread POSIX. Questo mi permetterebbe di passarci tutto quello che mi pare, in particolare una struct se ho più variabili.
Nel mezzo pseudocodice che segue ho riportato il test più recente che sto effettuando, grazie al quale mi sorge un dubbio: come faccio a passare la struttura st al callback "attraverso" func? Forse quest'ultima dovrebbe possedere anch'essa un puntatore a void, in aggiunta al callback? Ma soprattutto: è questa la via giusta da intraprendere?
void func( void (*callback)(void*) );
void callback( void * );
main()
{
struct st;
func( &callback );
}
void func( void (*callback)(void*) ) {
// qui chiamo la funzione callback
}
void callback( void * ) {
// faccio il cast da void* al necessario e uso i dati
}
Sperando di non aver generato confusione, ringrazio chiunque se la senta di darmi una mano ;)
Vorrei realizzare una funzione callback alla quale si possa passare un puntatore a void, un po' come si fa al momento di una creazione di un thread POSIX. Questo mi permetterebbe di passarci tutto quello che mi pare, in particolare una struct se ho più variabili.
Nel mezzo pseudocodice che segue ho riportato il test più recente che sto effettuando, grazie al quale mi sorge un dubbio: come faccio a passare la struttura st al callback "attraverso" func? Forse quest'ultima dovrebbe possedere anch'essa un puntatore a void, in aggiunta al callback? Ma soprattutto: è questa la via giusta da intraprendere?
void func( void (*callback)(void*) );
void callback( void * );
main()
{
struct st;
func( &callback );
}
void func( void (*callback)(void*) ) {
// qui chiamo la funzione callback
}
void callback( void * ) {
// faccio il cast da void* al necessario e uso i dati
}
Sperando di non aver generato confusione, ringrazio chiunque se la senta di darmi una mano ;)