_
Um's nochmal klar zu sagen: die #defines werden VOR dem Kompilieren durch den Präprozessor aufgelöst. Du wirst durch dein Konstrukt wahrscheinlich auch eine Warnung bekommen haben (von wegen redefinition oder so). Du sagst zuerst, dass der Text "K_UP" in deinem kompletten Quellcode durch "key.down.1" ersetzt werden soll. Danach sagst du aber, dass stattdessen "key.down.5" da stehen soll. Es gilt dann wohl letzteres. Dein switch-statement sieht für den Compiler übrigens so aus:
switch(nummer){
case 1:
break;
case 2:
break;
}
Kein Wunder, dass das nicht funktioniert, oder?
An diese Stellen etwas einfügen könntest du theoretisch mit #include (ebenfalls eine einfache Textersetzung, die allerdings eine ganze Datei statt eines String-Literals einfügt). Aber bitte, bitte, tu es nicht! Nimm, wie bereits vorgeschlagen, einfach eine Variable. Und google mal nach Präprozessor.