*Markus: (C) Gültigkeitsbereich von Variablen wie verwenden?

Beitrag lesen

Hallo,

da ich eigentlich von der Java-Seite komme, habe ich in C noch ein Organisationsproblem mit dem Umgang des Gültigkeitsbereichs von Variablen.

Wenn ich vordefinierte Funktionen verwende, zB wie bei GTK...

g_signal_connect

...dann kann ich diese Funktionen nicht um weitere Variablen, die ich eventuell benötige, erweitern. Dadurch quetsche ich alles in eine Struktur, die ich dann als Pointer übergebe, weil ich die Werte der Struktur in den anderen Events benötige:

  
struct clickdata   {  
     gint rating;  
     gboolean deleterating;  
};  
  
int main(int argc, char *argv[]) {  
  
  struct clickdata clickdata;  
  clickdata.rating = 0;  
  clickdata.deleterating = FALSE;  
  gpointer p_clickdata = &clickdata;  
  
  g_signal_connect(window, "button-press-event", G_CALLBACK(clicked), p_clickdata);  
.  
.  
.  
  

In den Funktionen muss ich wieder alles entwurschteln und dereferenzieren. Macht man das so, oder sollte ich besser (auf diese C-Datei beschränkte) globale Variablen verwenden, die ich dann in jeder Funktion problemlos ansprechen kann, da ich ja ohnehin die Variablen funktionsübergreifend behandeln muss?
Welchem Paradigma folgt man hier am besten?

Viele Grüße,
Markus