Domanda

Voglio usare un po 'struct base in C come il seguente:

struct p {
    int a;
    int b;
    p * next;
}

Tuttavia, non riesce a compilare con un error: parse error before "p" sulla linea con p * next;.

Avete qualche idea di quale sia la ragione potrebbe essere per questo problema?

È stato utile?

Soluzione

C struct vivere in uno spazio dei nomi diverso e devono essere esplicitamente ambito, in tal modo:

struct p {
    int a;
    int b;
    struct p * next;
};

E non dimenticare il punto e virgola alla fine! : -)

Si può fingere di essere in C ++ così: typedef struct p { /*...*/ } p;. Ma penso che next avrà ancora essere dichiarata come sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top