Avatar billede danielhep Nybegynder
27. januar 2003 - 10:27 Der er 6 kommentarer og
2 løsninger

Enum c

enum ePacketpriotet {
  FASTDELIVERY,
  SECUREDELIVERY,
  UNRELIBLEDELIERY,
};

lad os sige at jeg er ved at lave noget i winsock, og så vil jeg bruge denne her..
Problemer er bare lige at jeg ved ikke rigtigt hvad "enum" er......Det er det som jeg skal bruge jer gutter til at svare på...

Mvh

Daniel
Avatar billede jpk Nybegynder
27. januar 2003 - 10:30 #1
enum er kort for enumeration. Det betyder egentlig bare at dine symboler tildeles en sekventiel værdi.

I dit eksempel tildeles følgende værdier:
FASTDELIVERY=0
SECUREDELIVERY=1
UNRELIBLEDELIERY=2
Avatar billede jpk Nybegynder
27. januar 2003 - 10:31 #2
Hvis den var angivet således:

enum ePacketpriotet {
  FASTDELIVERY=3,
  SECUREDELIVERY,
  UNRELIBLEDELIERY,
};

ville værdierne blive:
FASTDELIVERY=3
SECUREDELIVERY=4
UNRELIBLEDELIERY=5
Avatar billede soreno Praktikant
27. januar 2003 - 10:33 #3
Du kan definere konstanter, som automatisk tælles op (tildeles en integer værdi).

F.eks.

enum Colors
{
  RED, GREEN, BLUE
};

Colors col;

col = hent_værdi_fra_bruger();

switch(col)
{
  case RED:
    printf("Bruger valgte rød");
  case GREEN:
    printf("Bruger valgte grøn");
  case BLUE:
    printf("Bruger valgte blå");
  default:
    printf("Bruger valgte ikke en kendt farve);
}
Avatar billede jpk Nybegynder
27. januar 2003 - 10:33 #4
Du kan altså godt vælge at bruge tallet 0 istedet for FASTDELIVERY, men det er lettere at gennemskue koden med FASTDELIVERY som argument i stedet for et tal...
Avatar billede danielhep Nybegynder
27. januar 2003 - 10:35 #5
ok, men det som det skulle bruges til var jo nok en server i winsock eller lig....
Avatar billede soreno Praktikant
27. januar 2003 - 10:39 #6
Jeg kunne forestille mig at den enum du har postet bruges af koden til at afgøre hvilken protokol der benyttes..
F.eks

switch(..)
{
  case FASTDELIVERY:
    use_TCP_socket();
    break;

  case SECUREDELIVERY:
    use_TCP_socket_with_additional_verify();
    break;

  case UNRELIBLEDELIERY:
    use_UDP_socket();
    break;
}

Altså koden forgrener sig på baggrund af programmørens valg af værdi til enum'en.
Avatar billede danielhep Nybegynder
27. januar 2003 - 10:43 #7
soreno >>

Ikke helt, den skal bruges til at indele pakkeren så hvis ens båndbredde er lille så priotere man måske de pakker højst som er direkte til serveren og ikke clienterne...
Avatar billede danielhep Nybegynder
27. januar 2003 - 10:45 #8
jeg skal også i gang med at programmere en server i Winsock, jeg har jo en client, men mangler serveren...Så jeg har også fået nogle links her og der til, så der skal jo nok blive godt.. :)
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