Funzione di callback in c

Funzione di callback in c
Un callback nel linguaggio di programmazione C è una funzione basata su eventi che trasmette una funzione in un'altra funzione come argomento. Semplicemente la funzione di callback è quando un riferimento di una "funzione 1" viene passato come argomento a "funzione 2" usando un puntatore della funzione. Tale funzione utilizza quel riferimento per chiamare "funzione 1". Questo articolo fornirà alcune illustrazioni sull'uso di una funzione di callback nel linguaggio di programmazione C

Sintassi

Per l'utilizzo della funzione di callback, dovremo dichiarare e inizializzare il puntatore della funzione nella funzione principale. La sintassi di dichiarazione/inizializzazione del puntatore funzione è definita qui:

[ReturnType-of-the-CallingFunction] (*[puntatore-name]) ([CallingFunction's-Parameters]) = & [CallingFunction-Name];

Dopo la dichiarazione/inizializzazione del puntatore della funzione, passeremo il puntatore alla funzione desiderata nel modo seguente:

[Desired-Function-Name] ([qualsiasi altro-Funzione-parametro], puntatore-nome);

La firma della definizione/inizializzazione della funzione della funzione che riceve tale argomento sarà così:

[ReturnType] [function-name] ([any-altro-function-parameter], [returntype-of-calling-function] (*[puntatore-name]) ([parametri della funzione chiamante]))

Finalmente, chiamare quella funzione usando quel puntatore passato viene visualizzato qui:

[Pointer-Name] (quell'attività di parametri);

La teoria potrebbe essere un po 'confusa. Tuttavia, l'implementazione degli esempi ti aiuterà a liberare tali confusioni.

Esempio 1:

Nel nostro primo esempio, creeremo una semplice funzione di callback. Che non restituisce nulla e non richiede parametri. Per liberare i nostri concetti appena appresi implementandoli. Tutto quello che devi fare è creare un blocco note e dargli un titolo di tua scelta. Aggiungere .Estensione CPP utilizzata per i file di programmazione C.

Una volta creato il documento, aprire l'interfaccia della riga di comando e digitare la seguente query aggiunta per compilare il codice di lingua C utilizzando il compilatore GCC.

$ gcc -o [il tuo nome file] [il tuo nome file].CPP

Ora, digita il comando successivo per l'esecuzione del codice.

$ [Il tuo nome file].exe

Saltiamo al codice principale. Abbiamo iniziato creando le firme della funzione in alto, poiché abbiamo bisogno di creare due funzioni. Uno sarà il callback e l'altro il cui puntatore di funzione viene passato alla funzione di callback.

Nella funzione principale, dichiareremo/inizializzamo il nostro puntatore di funzione. Mentre la funzione di funzione, dobbiamo passare il puntatore come argomento. Il codice di funzione principale è presentato nello screenshot sotto.

Ora, tutto ciò che dobbiamo fare è compilare il nostro callback e l'altra funzione. Identico alla strada nell'immagine presentata di seguito. Il callback e altri codici di funzione sono presentati nello screenshot sotto.

Le nostre funzioni non stanno eseguendo nulla di complesso. Per ottenere l'idea di base, stamperemo i messaggi sulla console. Per vedere come funziona la funzione di callback. Eseguire l'istruzione che viene presentata nell'immagine sotto.

A giudicare dall'output, possiamo dire quando abbiamo funzionato a chiamare dal principale. È andato a "funzione 1" e stampare il messaggio sulla console. Quindi utilizzando il puntatore della funzione, si accede a "funzione 2" quando le righe del codice in "funzione 2" sono tutte eseguite. Il controllo tornerà alla "funzione 1".

Esempio 2:

In questo caso, implementeremo le semplici operazioni del calcolatore (i.e., Aggiungi, sottrai, moltiplica e dividi) con l'aiuto della funzione di callback della lingua C. Inizieremo aggiungendo le firme delle funzioni delle operazioni e la funzione di callback simile all'esempio 1.

Quindi dichiareremo il nostro numero intero, il nostro funzionamento e la variabile del puntatore della funzione.

Prendi input dell'utente per far funzionare i numeri interi e chiedi all'utente di scegliere l'operazione desiderata per eseguire su di essi.

Utilizzando la condizione else-if, faremo un puntatore della funzione operativo scelto dall'utente per trasmetterla nella funzione di callback del calcolatore.

Questo è tutto per la funzione principale, il tempo di codificare il callback e le funzioni operative. Tutte le funzioni operative prendono due argomenti e restituiscono il risultato dell'operazione come output. Nella nostra funzione calcolatrice, stamperemo il valore restituito dell'operazione chiamando la funzione operativa utilizzando il suo puntatore.

Per tutte le funzioni operative, codificheremo per calcolare e restituire il risultato di tale operazione.

Finalmente, è tempo di testare il nostro codice. Eseguire l'istruzione che viene presentata nell'immagine sotto.

Come puoi vedere, il programma funziona senza intoppi senza errori. Proviamo a testare anche altre operazioni.

Come puoi vedere, il nostro programma è logicamente corretto per tutte le operazioni. Quando un utente seleziona l'operazione desiderata, viene selezionato quel particolare "if" della loro scelta operativa e quel puntatore della funzione operativa viene passato alla funzione calcolatrice. L'uso di quella funzione calcolatrice puntatore chiama il codice eseguibile dell'operazione scelta e AS, un risultato, ricomincia la risposta risultante.

Ora testeremo quanto bene il nostro programma reagisce quando un utente inserisce un input non valido per la scelta di un'operazione.

Come puoi visualizzare dall'immagine allegata sopra, che il nostro programma funziona senza intoppi.

Conclusione:

Facciamo una rapida panoramica che abbiamo trattato in questo tutorial, è la teoria della funzione di callback, del puntatore della funzione, della sua sintassi e implementare alcuni esempi per ottenere una migliore comprensione. Spero che questo tutorial ti abbia aiutato a correggere i tuoi concetti e cancellare tutte le tue domande riguardanti le funzioni di callback nella lingua C.