Avatar billede danielhep Nybegynder
26. februar 2003 - 08:34 Der er 4 kommentarer og
1 løsning

typedef C

hej

struct person
{
  char navn[10];
};

hvad er den generelle forskel i disse to stykker koder:

typedef person *new1; //1

person *new2; //2

Hvad er det for noget med at typedefinere den, og åbner der nogle nye døre for new1 hvis der står typedef foran ?

Mvh
Daniel
Avatar billede arne_v Ekspert
26. februar 2003 - 08:38 #1
Den første erklærer new1 til at være et synonym for en pointer til person.

Den anden erklærer en variabel new2 af typen pointer til person.

Meget forskelligt !
Avatar billede arne_v Ekspert
26. februar 2003 - 08:39 #2
Hvis jeg husker rigtigt skal du iøvrigt have struct keywordet med i C.
Avatar billede arne_v Ekspert
26. februar 2003 - 08:45 #3
struct person
{
  char navn[10];
};

typedef struct person *person_ptr;

struct person *p1;
person_ptr p2;
Avatar billede danielhep Nybegynder
26. februar 2003 - 08:48 #4
Det har du ret i Arne, men skal have struct med i c, det gik bare lidt hurtigt da jeg skrev... :)

Det kan jeg godt se, at der er forskel...

Men godmorgen og takker for hjælpen

Mvh

Daniel
Avatar billede jpk Nybegynder
26. februar 2003 - 08:49 #5
Den første vil du fx bruge således:
typedef person* personPtr; // personPtr = person*
personPtr new1 = new person("Benny");
personPtr new2 = new person("Brian");
personPtr new3 = new person("Kurt");

hvis du undlader den vil du "bare" gøre sådan:
person* new1 = new person("Benny");
person* new2 = new person("Brian");
person* new3 = new person("Kurt");

Det giver ofte mening at bruge hvis du har en mere avanceret konstellation, fx:
typedef vector<person*> personVector;
og så bruge personVector hver gang du ellers ville skrive vector<person*>, fx:
personVector personer;
personer.push_back(new person("Benny"));
personer.push_back(new person("Brian"));
personer.push_back(new person("Kurt"));
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester