Avatar billede krukken Juniormester
08. marts 2007 - 11:00 Der er 3 kommentarer og
1 løsning

Angående struct

Jeg har nogle problemer med følgende kode:

/*Tags.c*/
#include "Tags.h"

/*public operation*/
void Tags_Init(Tag* const this)
{
        Reset(this);
}

/*private operationer*/
static void Reset(Tag* const this)
{
        this->UID = 0;
        this->status = 0;
}

/*Tags.h*/
#ifndef TAGS
#define TAGS

typedef struct Tag_Types
{
      char* UID;
      int status;       
} Tag;

extern void Tags_Init(Tag* const this);

#endif 

1. Jeg kan ikke kalde Reset-metode: Undefined Symbol?
2. Unmodified lvalue?
Avatar billede krukken Juniormester
08. marts 2007 - 11:07 #1
Og hvorfor kan jeg ikke have en enum i min struct?

typedef struct Tag_Types
{
      char* UID;
      enum STATUS {None = 0, NEW = 1, EXITING=2, OLD = 3};       
} Tag;

Compileren giver følgende fejl: undefined tag 'STATUS'
Avatar billede faerch Nybegynder
08. marts 2007 - 16:23 #2
1) Prøv med at lave en prototype af funktionen Reset. Tags_Init() ved ikke at der en resetfunktion, idet den først ligger bagefter.
void Reset(Tag*);

2) I funktionen Reset(...)tager du input for at være en konstant, og forsøger at redigere denne - den går ikke.....prøv at fjerne "const"
Avatar billede krukken Juniormester
08. marts 2007 - 16:47 #3
Du har faktisk helt ret. Jeg havde faktisk ud af det. Men tak for hjælpen:-)
Avatar billede faerch Nybegynder
09. marts 2007 - 09:12 #4
Du havde vel egentlig et spørgsmål mere kan jeg se angående enum inden i strukturen, men det kan selvfølgelig være du også fandt ud af det....

Her for du kun oprettet de konstante værdier i enummen, men aldrig defineret en variabel. Følgende burde kunne gøre det, men det har du nok fundet ud af....

enum Status_e{NONE, NEW, EXITING, OLD};

typedef struct Tag_Types{
  char* UID;
  enum Status_e Status;
}Tag;
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