webForumDet fria alternativet

Rekursiv strukt?

4 svar · 260 visningar · startad av Gein

GeinMedlem sedan sep. 20005 700 inlägg
#1

Vet inte va det kallas men en sån ska jag göra som innehåller en union. Detta går dock inge bra och jag undrar hur det ska se ut?

enum operator_tag { IS_INT, IS_NEG, IS_ADD, IS_MUL};
struct operator {
  enum operator_tag tag;
  union opunion{
    struct { int num; } integer;
    struct { int num; } negative;
    struct { struct operator *op1, struct operator *op2; } add; //*
    struct { struct operator *op1, struct operator *op2; } mul;
  } op;
};

Här klagar den på raden jag markerat med *.
Parse error before `struct'. Vad beror detta på och hur ska rekursionen se ut?

nikoMedlem sedan juni 20022 599 inlägg
#2

Har inte testat men tycker det ser bättre ut så här:

struct { struct operator *op1[b];[/b] struct operator *op2; } add; 
struct { struct operator *op1[b];[/b] struct operator *op2; } mul;

?

/red: Semikolonen i mitten ska vara feta men det syns inte riktigt.

GeinMedlem sedan sep. 20005 700 inlägg
#3

Jo, tack. Hade missat semikolon mitt i strukten.

nikoMedlem sedan juni 20022 599 inlägg
#4

np. En annan sak om du planerar att vara portabel är att nyckelordet operator nog kan ställa till det i andra miljöer/sammanhang.

GeinMedlem sedan sep. 20005 700 inlägg
#5

Tack, då ska jag ändra det nyckelordet! Nu är det iofs inte så viktigt hur portabelt det blir, men att bli mer korrekt är inte fel. :)

126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)