Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » callback funktionen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.07.2003, 10:24 Uhr
~lucky
Gast


Hallo an alle
Kann mir jemand erklären anhang von ein einfachen beispiel was ein
callback funktion ist und wie man sie einsetzen kann?
Danke im voraus..
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2003, 19:30 Uhr
Pablo
Supertux
(Operator)


Meinst du etwa eine rekursive Funktion, d.h. eine Funktion, die sich selbst aufruft?
1, falls b ==0
Bsp: a^b := pow(a,b) = a*pow(a,b-1) sonst

Die mathematische Definition der Potenzierung


C++:
#include <stdio.h>
int pow(int a, int b)
{
    if (b==0)
        return 1;
    else
       return a*pow(a,b-1);
}
int main()
{
    printf("Die Potenzierung 5^4 = %d\n", pow(5,4));
}



Ausgabe: 625
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.07.2003, 20:29 Uhr
virtual
Sexiest Bit alive
(Operator)


Eigentlich kann jede Funktion eine Callbackfunktion werden, oder fast jede. Im Allgmeinen würde ich eine Callbackfunktion als eine Funktion bezeichnen, welche als parameter zu einer anderen Übergeben wird, damit eben diese Andere Funktion sie aufrufen kann. Ein Beispiel wäre die Funktion qsort: qsort dient dazu, ein Array zu sortieren. zB:

C++:
const char* lauterNamen[] = { "Ich", "Du", "Er", "Sie", "Es", "Wir", "Ihr", Sie" };


Sowas kann man mit qsort sortieren, zb so:

C++:
qsort(lauterNamen, 8, sizeof(char*), vgl);


Der erste parameter zeigt auf den Anfang des arrays, der zweite gibt an, wie viele Element darin sind und der dritte die größe jeden Elements. Der vierte ist unsere Callbackfunktion, die qsort verwendet, um das Array zu sortieren. Dh wir müssen eine Callback funktion vgl bereitstellen. Damit ist qsort ziemlich flexibel, weil wir koennen praktisch alles sortieren, wenn wir nur das richtige vgl haben. In unserem Fall sieht das so aus:

C++:
int vgl(const void* a, const void* b)
{
     return strcmp((const char*)a, (const char*)b);
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.07.2003, 21:19 Uhr
Hans
Library Walker
(Operator)


Hi,

@Pablo: Ich denke das meint er nicht, sondern solche, die von einem übergeordneten Prozess aufgerufen werden, wenn ein bestimmtes Ereigniss eintritt.

@lucky: Eine Callback-funktion wird immer dann aufgerufen, wenn ein bestimmtes Ereigniss eintritt, wie ich schon geschrieben hab. Wenn Du z.B. mit der Maus irgendwo klickst, dann ist das ein Ereigniss: (aus menschlicher Sicht zwar ein ziemlich banales, aber eben ein Ereigniss.) nämlich das eine Taste an Maus gedrückt wurde. Das System ermittelt darauf hin die Position des Mauszeigers auf dem Bildschirm, und stellt fest, ob er sich in einem Fenster befindet oder nicht; und wenn er in einem Fenster ist, ob über einem Button oder etwas anderem.
Je nachdem, was bei dieser Untersuchung heraus kam, wird eine Aktion ausgelöst. Die Funktionen, die für die Ausführung dieser Aktionen zuständig sind, heissen Callback-funktionen. Beispiel: Du klickst in einem Texteditor auf den "Speichern"-Button; dann wird eine Funktion aufgerufen, die Deinen Test speichert. Das ist die Callback-funktion.
Dieser Mechanismuss ist übrigens in jeder GUI der Gleiche, egal ob sie zu Windoof, Linux oder sonst was gehört.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 08.07.2003 um 21:22 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.07.2003, 14:02 Uhr
~lucky
Gast


Ja alles klar
Diese begriffe............
Pablo das ist ein interessantes beispiel einer
recursiver funktion, und eigentlich auch ein rückruf.
Aber das was ich gemeint habe ist es von virtual und hans.
Ich nemme es an als das model von virtual --> die übergabe
von funktionszeiger um den entsprechenden
funktionsaufruf über die eine funktion,
und als Zielsetzung die gui-technologie die Pablo
angesprochen hat.
Ist es so?
Vielen dank für eure antworten,
war eine grosse hilfe...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.07.2003, 18:47 Uhr
Pablo
Supertux
(Operator)


Sorry, ich hab gemeint, dass callback rekursiv war, ich kannte den Begriff callback nicht!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: