Forum: Compiler & IDEs swtich/case Verständnis


von Reiner (Gast)


Lesenswert?

Warum funktioniert das nicht:

//--------------------------------------------
switch(~inp(PIND))
{
  case 0x01 : /* mach was         */ break;
  case 0x02 : /* mach was anderes */ break;
}
//--------------------------------------------


Und warum funktioniert das:

//--------------------------------------------
unsigned char p;

p = ~inp(PIND);

switch(p)
{
  case 0x01 : /* mach was         */ break;
  case 0x02 : /* mach was anderes */ break;
}
//--------------------------------------------

In anderen Compilern bin ich auch Lsg. I gewohnt.

Reiner

von Reiner (Gast)


Lesenswert?

Ok legt Euch wieder Schlafen,
Hab's raus.

bei switch muß der typ unsigned char erzwungen werden, dann läuft es.

switch( (unsigned char)~inp(PIND) )
{
  case ...
  case ...
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.