Pointeri la struct cesiune

Autor Subiect: Pointeri la struct cesiune  (Citit de 2 ori)

Alexz

  • Vizitator
Pointeri la struct cesiune
« : Ianuarie 01, 1970, 01:00:00 am »
O metodă bine cunoscută de a face un cod flexibil şi împartă proiectul în a obiectelor este de a folosi indicii la funcţii într-o struct şi apoi a iniţializa struct cu indicatori către funcţiile pe care doriţi să o utilizaţi.

typedef struct myStructType
(
void (* myFunc) (void);
) myStruct;

void func1 (void)
(
)

void main ()
(
myStruct struct1;

struct1.myFunc = func1; / / aloca indicatorul func
struct1.myFunc (); / / funcţia Apel în func1
)

Acest lucru permite folosirea aceleaşi struct pentru diferite funcţii la un moment dat.

Acum, întrebarea este cum să facă un lucru similar cu alte structs mai degrabă decât să funcţii.
Vreau să am un pointer la o struct într-o struct.Si apoi, posibilitatea de a iniţializa acest pointer la o struct Vreau să o utilizaţi.

struct oneStruct
(
char var1;
) unul;

struct twoStruct
(
char var1;
) două;

typedef struct de bază
(
structPtr structType; //??????????????
) structBasic;

void main ()
(
structBasic.structPtr = &oneStruct; / / set indicatorul la o struct Vreau să folosesc

structBasic.structPtr-> var1 ;
)



btbass

  • Vizitator
Pointeri la struct cesiune
« Răspuns #1 : Ianuarie 01, 1970, 01:00:02 am »

Cod:typedef struct

(

int a;

int b;

DE BAZĂ);DE BAZĂ B_one, B_two; / * Global * /typedef struct

(

DE BAZĂ * structpointer;

) Variable;void main ()

(

DE BAZĂ B_three; / * sau locale * /

V Variable;V.structpointer = & B_one;)