Così Diciamo che ho una funzione:funzione di callback: differenza tra void (* func) (int) e vuoto (func) (int)
void foo (int i){
cout << "argument is: " << i << endl;
}
E sto passando questa funzione per:
void function1 (void(callback)(int), int arg){
callback(arg);
}
void function2 (void(*callback)(int), int arg){
callback(arg);
}
queste due funzioni sono identiche? C'è qualche differenza tra i due?
Esattamente identico. I tipi di funzione nei parametri sono adattati ai puntatori. –
Lo stesso accordo con il dichiarare una funzione che accetta 'int * x' vs.' int x [] '; non è possibile passare funzioni o array in base al valore; la versione senza un esplicito '*' è solo zucchero sintattico per la versione puntatore. – ShadowRanger