2 Stimmen

C typedef und Zeiger auf struct

Wenn ich das Folgende habe:

typedef struct _MY_STRUCT
{
   int a;
   float b;
} MY_STRUCT, *PMYSTRUCT

Was bedeutet *PMYSTRUCT tun? Ist es nun ein Zeigertyp, den ich deklarieren muss, oder nur ein Zeiger auf _MY_STRUCT die ich verwenden kann?

Ich weiß, dass MY_STRUCT ist ein neuer Typ, der wie folgt verwendet werden muss:

MY_STRUCT str;
str.a = 2;

Aber was ist mit dem *PMYSTRUCT ?

6voto

Johann Gerell Punkte 24065
PMYSTRUCT ms = NULL;

ist gleich

MYSTRUCT* ms = NULL;

1voto

Jay Punkte 23175

Sie hat die gleiche Wirkung wie

typedef MYSTRUCT * PMYSTRUCT;

Er dient lediglich als Typedef für den Zeiger der Struktur.

0voto

lalitm Punkte 608
MY_STRUCT s;
s.a = 10;
PMYSTRUCT ps = &s;
ps->a = 20;

0voto

Pavel Radzivilovsky Punkte 18418

In c, typedef hat eine Speicherklassen-Semantik, genau wie static , auto y extern .

Bedenken Sie dies:

static int a, *p; - deklariert a als statische Variable des Typs int und p ist eine statische Variable des Typs Zeiger auf int .

typedef int a, *p - deklariert a als den Typ int und p ist ein Typ Zeiger auf int .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X