Heim  >  Artikel  >  So implementieren Sie eine Rückruffunktion in der C-Sprache

So implementieren Sie eine Rückruffunktion in der C-Sprache

清浅
清浅Original
2019-04-16 14:12:266389Durchsuche

Die Rückruffunktion dient dazu, verschiedene Funktionen über eine einheitliche Schnittstelle zu implementieren. Die Rückruffunktion in der C-Sprache dient dazu, verschiedene Rückruffunktionen im Code entsprechend den verschiedenen übergebenen Parametern aufzurufen

Die Rückruffunktion ist ein Programm A Funktion, die nicht explizit von der Callback-Funktion aufgerufen werden kann; die Callback-Funktion wird aufgerufen, indem die Adresse der Callback-Funktion an den Aufrufer übergeben wird. Die Verwendung von Rückruffunktionen ist erforderlich, wenn wir unterschiedliche Inhalte über eine einheitliche Schnittstelle implementieren möchten.

So implementieren Sie eine Rückruffunktion in der C-Sprache

[Empfohlenes Tutorial: C-Sprach-Tutorial]

Zum Beispiel haben wir verschiedene Anzeigefunktionen für verschiedene Geräte geschrieben:

void TVshow(); 
void ComputerShow(); 
void NoteBookShow()...等等。

Das liegt daran, dass wir eine einheitliche Anzeigefunktion verwenden möchten und die verlorene Funktion zu diesem Zeitpunkt verwenden können.

void show(void (*ptr)());

Bei Verwendung werden je nach den übergebenen Parametern unterschiedliche Rückruffunktionen aufgerufen.

Verschiedene Programmiersprachen können unterschiedliche Syntax haben. Hier ist ein Beispiel für eine Rückruffunktion in der C-Sprache.

#include <stdlib.h>
#include <stdio.h>
int Test1()
{
    int i;
    for(i=0; i<30; i++)
    {
        printf("The %d th charactor is: %c\n", i, (char)(&#39;a&#39; + i%26));
    }
    return 0;
}
int Test2(int num)
{
    int i;
    for (i=0; i<num; i++)
    {
        printf("The %d th charactor is: %c\n", i, (char)(&#39;a&#39; + i%26));
    }
    return 0;
}
void Caller1( void (*ptr)() )//指向函数的指针作函数参数
{
    (* ptr)();
}
void Caller2(int n, int (*ptr)())//指向函数的指针作函数参数,这里第一个参数是为指向函数的指针服务的,
{
    //不能写成void Caller2(int (*ptr)(int n)),这样的定义语法错误。
    (* ptr)(n);
}
int main()
{
    printf("************************\n");
    Caller1(Test1);     //相当于调用Test1();
    printf("&&&&&&************************\n");
    Caller2(30, Test2); //相当于调用Test2(30);
    return 0;
}

Das Rendering ist wie folgt

So implementieren Sie eine Rückruffunktion in der C-Sprache

Das Obige wird aufgerufen, indem die Adresse der Rückruffunktion an den Aufrufer übergeben wird, es sollte jedoch beachtet werden, dass die Rückruffunktion mit Parameterverwendung.

Um Rückrufe zu implementieren, müssen Sie zunächst einen Funktionszeiger definieren. Die Definition von Funktionszeigern wird hier kurz erwähnt.

Zum Beispiel:

int (*ptr)();

Hier ist ptr ein Funktionszeiger, in dem die Klammern von (*ptr) nicht weggelassen werden dürfen,

da die Priorität der Klammern höher ist als das von Sternchen, auf diese Weise Es wird eine Funktionsdeklaration mit einem ganzzahligen Rückgabetyp.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird für alle hilfreich sein.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine Rückruffunktion in der C-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn