@damaltor
Na gut ich habe fürchterlich übertrieben mit den 'Meilen'.
Ausserdem gebe ich dir natürlich Recht, dass das ganze eine eigene Vorliebe ist.
Aber der HEX-Output bei deinem Beispiel ergibt immerhin 22 Byte Unterschied zugunsten der IF-Orgie.

Size before:
test.elf :
section size addr
.text 1600 0

Size after:
test.elf :
section size addr
.text 1622 0

Je nachdem, welchen der beiden IF_CODE-Zeilen auskommentiert gibt es da die Unterschiede:
Code:
#include "asuro.h"

//#define IF_CODE	1
#undef  IF_CODE

int main ()
{
char wert, a=0;

  wert = PollSwitch ();

#ifdef IF_CODE

  if(wert==1){
	  a=wert+1;
  }
  if(wert==2){
  	a=wert+2;
  }
  if(wert==3){
	  a=wert+3;
  }
  if(wert==4){
  	a=wert+4;
  }
  if(wert==5){
	  a=wert+5;
  }
  if(wert==6){
  	a=wert+6;
  }
  if(wert==7){
	  a=wert+7;
  }
  if(wert==8){
  	a=wert+8;
  }
  if(wert==9){
	  a=wert+9;
  }
  if(wert==10){
  	a=wert+10;
  }

#else
  
  switch (wert){
  case 1:
	  a=wert+1;
    break;
  case 2:
	  a=wert+2;
    break;
  case 3:
	  a=wert+3;
    break;
  case 4:
	  a=wert+4;
    break;
  case 5:
	  a=wert+5;
    break;
  case 6:
	  a=wert+6;
    break;
  case 7:
	  a=wert+7;
    break;
  case 8:
	  a=wert+8;
    break;
  case 9:
	  a=wert+9;
    break;
  case 10:
	  a=wert+10;
    break;
  }

#endif

  return a;
}
Benutzt man aber die Variante, dass die IF's eigendlich mit "else if" fortgeführt werden sollten um so halbwegs performat zu sein, reduziert sich dieser Vorteil auf popelige 4 Byte bei dem 10-er Beispiel:
-> Und hier liegt ein entscheidender Vorteil vom swtich/case: Performanter, da ein Sprung zur Stelle erfolgt die gerade benötigt wird und eben nicht ein 'rumraten' wohin es denn nun gehen soll.

Size before:
test.elf :
section size addr
.text 1618 0

Size after:
test.elf :
section size addr
.text 1622 0
Code:
#include "asuro.h"

//#define IF_CODE	1
#undef  IF_CODE

int main ()
{
char wert, a=0;

  wert = PollSwitch ();

#ifdef IF_CODE

  if(wert==1){
	  a=wert+1;
  }
  else if(wert==2){
  	a=wert+2;
  }
  else if(wert==3){
	  a=wert+3;
  }
  else if(wert==4){
  	a=wert+4;
  }
  else if(wert==5){
	  a=wert+5;
  }
  else if(wert==6){
  	a=wert+6;
  }
  else if(wert==7){
	  a=wert+7;
  }
  else if(wert==8){
  	a=wert+8;
  }
  else if(wert==9){
	  a=wert+9;
  }
  else if(wert==10){
  	a=wert+10;
  }

#else
  
  switch (wert){
  case 1:
	  a=wert+1;
    break;
  case 2:
	  a=wert+2;
    break;
  case 3:
	  a=wert+3;
    break;
  case 4:
	  a=wert+4;
    break;
  case 5:
	  a=wert+5;
    break;
  case 6:
	  a=wert+6;
    break;
  case 7:
	  a=wert+7;
    break;
  case 8:
	  a=wert+8;
    break;
  case 9:
	  a=wert+9;
    break;
  case 10:
	  a=wert+10;
    break;
  }

#endif

  return a;
}

@radbruch
Ja was soll das denn? Nicht die LIB benutzen, ist das denn erlaubt?
Der Hinweis von mir bezog sich nur auf die Speicherplatz-Probleme die ich bei dem Asuro-Programmteil hatte um da alle Tests unterzubringen.