Nwlapcug.com


Perché utilizzare i puntatori a funzione?

In C e C++ e altri linguaggi che consentono l'accesso diretto alla memoria del computer, un puntatore è un tipo speciale di valore che contiene un indirizzo di memoria invece di dati direttamente specificato. I puntatori a funzione scegliere funzioni in memoria invece di valori. I puntatori a funzione possono essere utilizzati per eseguire dichiarativa-funzionale-stile o tecniche in C o C++, lingue che sono in gran parte indispensabile di programmazione. Per inciso, sottolinea programmazione dichiarativa-stile che dice al computer cosa qualcosa è, mentre programmazione imperativo-stile enfatizza che dice il computer come fare qualcosa.

Dati diretto programmazione

Puntatori di funzione possono essere utilizzati per implementare dati diretto di programmazione, che è una forma di programmazione generica. In parole povere, la programmazione generica consente funzioni elaborare i valori di tipi arbitrari. Funzioni C e C++ per impostazione predefinita è in grado di elaborare solo le funzioni dei tipi precedentemente dichiarati. Ad esempio, una funzione "funzione int (formaggio di int, char ball)" deve restituire un valore integer e richiede solo un valore integer e un carattere. I puntatori a funzione possono essere utilizzati per inviare in modo dinamico sui tipi di argomenti.

Programmazione in stile di elaborazione del segnale

Puntatori a funzione possono essere utilizzati per implementare funzioni di stile di elaborazione segnale come mappa e ridurre. Queste sono le funzioni che accettano una funzione specificata dall'utente e applicano a ogni elemento in un elenco.

Programmazione di ordine superiore

Programmazione di ordine superiore è un'altra forma di programmazione che permette di incapsulare "modelli comuni", in quella che è conosciuta come una funzione di ordine superiore. I puntatori a funzione possono essere utilizzati per generare funzioni di ordine superiore.

Altre tecniche dichiarative

Puntatori a funzione possono essere utilizzati per implementare molte altre tecniche di programmazione dichiarative. Come altro esempio, il currying può essere implementato utilizzando i puntatori a funzione. Il processo di currying è definito come prendere una funzione definita in precedenza e restituire una nuova funzione che è la vecchia funzione con alcuni dei relativi argomenti applicati.