typedef struct x *x_t versteh ich nicht wirklich!
-
Ich habe folgendes Problem, vereinfacht dargestellt.
**
typedef struct x x_t;* wobei egal ist was in struct stecktund dann eine Funktion, die ich aufrufen muss um etwas anzustoßen.
**
open(x_t open);*jetzt muss ich x_t in einen Interger casten
**
int a=(int) x_t;**liegt da jetzt mein Pointer als Int-Wert drin? und zeigt der auf den Wert, der von der Methode open verändert wurde?
jetzt gibt es noch Methoden die laufen so:
**
dosomething(x_t doit);**wie bekomme ich das doit hin?
mit dosomething((x_t)a)?
ich hoffe das ist zu verstehen.
-
Nightstorm schrieb:
Ich habe folgendes Problem, vereinfacht dargestellt.
**
typedef struct x x_t;* wobei egal ist was in struct stecktDamit definierst du "x_t" als "Pointer auf struct x"
und dann eine Funktion, die ich aufrufen muss um etwas anzustoßen.
**
open(x_t open);*jetzt muss ich x_t in einen Interger casten
**
int a=(int) x_t;**liegt da jetzt mein Pointer als Int-Wert drin? und zeigt der auf den Wert, der von der Methode open verändert wurde?
"x_t" kannst du nicht casten, das ist ein Typ. Aber du kannst eine Variable vom Typ x_t nach int casten - damit erhältst du die numerische Entsprechung der Speicheradresse (wie du die interpretieren mußt, ist Betriebsgeheimnis deines Compilers).
jetzt gibt es noch Methoden die laufen so:
**
dosomething(x_t doit);**wie bekomme ich das doit hin?
mit dosomething((x_t)a)?
ich hoffe das ist zu verstehen.
Ja, das sollte gehen.
PS: Aber statt der Cast's ist es besser, dir gleich eine Variable vom richtigen Datentyp anzulegen und weiterzureichen.
-
Leider sind beide Schnittstellen festgelegt.
*edit* war Schwachsinn. Sollte erst zweimal lesen, und dann antworten.
Danke für die Antwort.