En nifs C erklæring

B

bittware

Guest
Kan noen hjelpe meg å forstå hva som er meningen med C erklæring nedenfor?

typedef struct QFreeBlockTag QFreeBlock;
struct QFreeBlockTag (
QFreeBlock * neste;
);

Jeg lurer på hvordan kompilatoren få anelse om hvilken type pekeren peker på.

Takk for hjelpen på forhånd.

 
Hei,
det vi har her er en enkel peker til sin egen type og for kompilatoren, alt det har å gjøre er å allokere størrelsen som kreves for å holde en adresse (4 bytes), men hvis du vil ha

typedef struct QFreeBlockTag QFreeBlock;
struct QFreeBlockTag (
QFreeBlock neste;
);

den comiler ville kaste en feil coz den comiler ikke vet hvor mye å bevilge, men for pekeren tilfellet vet at alt det har å gjøre er å bevilge så mye å holde adressen.

håper at klarnet det opp.

 
Dette er det samme hva pekeren å bruke.for hver pekere, tildeler kompilatoren 4 byte minne;
også størrelsen på den samlede strukturen (som inneholder 4 byte av pekeren variabel) bestemmer kreves tenker aritmetiske operasjoner på pekeren variabler.

 
denne strukturen kan i utgangspunktet brukes som et tomt knyttet liste

 

Welcome to EDABoard.com

Sponsor

Back
Top