No, non ce ne sono.
I puntatori di funzione possono essere inoltrati in modo affidabile ad altri tipi di puntatori di funzione (e quindi, solo referenziati mentre si punta al tipo di funzione corretto).
La conversione dei puntatori a funzione di interi in C è incluso 6.3.2.3/6:
Qualsiasi tipo di puntatore può essere convertito in un tipo intero. Ad eccezione di quanto specificato in precedenza, il risultato è definito dall'implementazione. Se il risultato non può essere rappresentato nel tipo intero, il comportamento non è definito. Il risultato non deve essere compreso nell'intervallo di valori di qualsiasi tipo intero.
Si noti che anche se il tipo intero è sufficientemente grande, non è possibile eseguire il cast in intero e tornare al puntatore della funzione per recuperare il puntatore della funzione originale.
In C++, il testo è in [expr.reinterpret.cast] punti 4 e 6. Il comportamento è simile, ma garantisce esplicitamente che se esiste un numero intero di dimensioni sufficienti, quindi convertire il puntatore di funzione in numero intero e viceversa recupera il puntatore della funzione originale.
fonte
2016-04-04 13:17:08
Non esiste un singolo tipo "puntatore alla funzione" (ogni tipo dipende dal prototipo della funzione). –
No, non ce ne sono. –
Non si può nemmeno convertire un puntatore a funzione in un 'void *'. Anche C e C++ sono lingue diverse. Si prega di limitare la domanda a uno di essi. – Olaf