spezieller Funktionsaufruf, spezielle Funktionsaufrufe
-
Hallo!
Hab immer geglaubt ich kann c , aber leider scheint es nicht so zu sein. Also habe folgenden Programmaufruf noch nie gesehen (Zeile 35 ruft Funktion von Zeile 2 auf ohne Parameter mitzuübergeben), wie funktioniert dieser bzw. wie heißt der (weiß ja nicht mal, nach was ich in der Literatur suchen soll).
Warum werden da die Parameter nicht mit übergeben, aber wahrscheinlich werden sie es doch da sonst ja der Kompiler schreien würde, aber wo und wie. Gibt es zu solchen Programmaufrufen ein Helloworld Beispiel irgendwo im Netz. Damit ich verstehe wie das ganze funktioniert.Mit Bestem Dank im Voraus THE_ONE
void view_onRowActivated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { GtkTreeModel *model; GtkTreeIter iter; g_print ("A row has been double-clicked!\n"); model = gtk_tree_view_get_model(treeview); if (gtk_tree_model_get_iter(model, &iter, path)) { gchar *name; gtk_tree_model_get(model, &iter, COLUMN_NAME, &name, -1); g_print ("Double-clicked row contains name %s\n", name); g_free(name); } } void create_view (void) { GtkWidget *view; view = gtk_tree_view_new(); ... g_signal_connect(view, "row-activated", (GCallback) view_onRowActivated, NULL); ... }
Code ist von hier
-
Zeile 35 ruft nicht direkt deine Funktion auf, sondern übergibt einen Funktionszeiger an eine andere Funktion g_signal_connect() - diese wird irgendwo in der Verarbeitung die nötigen Parameter zusammenstellen und dann deine Funktion aufrufen.
(such mal nach "Funktionszeiger" oder "Callback", wenn du weitere Informationen benötigst)