subroutine iinerhalb einer switch

Gast #1329118
Guten Tag,

ich habe folgendes Problem:

ich habe eine switch-Anweisung, die mehrere case beinhält.

Innerhalb eines case ist aber sehr viel Code.
Diesen Code würde ich gerne mit Hilfe einer subroutine auslagern.

Wie geht so eine subroutine???
Ist das eine Funktion?

Ich würde in case gerne Subroutine aufrufen und diese Subroutine am Ende 
des Files bearbeiten.


Vielen Dank im Voraus.

1
switch (x)
2
{
3
  case 1:
4
    Jede Menge Code;
5
  
6
  case 2:
7
    Jeder menge Code;
8

9
  Usw.
10
  default:
11
    break;
12
}
SeriK schrieb:
> Wie geht so eine subroutine???
> Ist das eine Funktion?

Ja.
1
  switch (x)
2
  {
3
    case 1:
4
      function1();
5
      break;
6
 
7
    case 2:
8
      function2();
9
      break;
10

11
    default:
12
      break;
13
  }
14

15
...
16

17

18
void function1()
19
{
20
  jede Menge Code
21
}
22

23
void function2()
24
{
25
  jede Menge anderer Code
26
}


Jedes noch so grindige C-Buch hat mindestens 30 Seiten über Funktionen 
und was damit noch so alles zusammenhängt. Zb. auch warum obiger Aufbau 
auf deinem Compiler wahrscheinlich eine Warnung ausgeben wird.
Du solltest dir dringend eine C-Buch zulegen. Da wartet noch vieles auf 
dich!
Gast
1
void main (void)
2
{
3
switch (x)
4
{
5
  case 1:
6
    code1();
7
  
8
  case 2:
9
    Code2();
10

11
  Usw.
12
  default:
13
    break;
14
}
15
}
16

17
void code1(void)
18
{
19
Jede Menge Code;
20
}
21

22
void code2(void)
23
{
24
ganz viel anderer Code;
25
}
Gast
1
void funktion1() {
2

3
}
4

5
void funktion2() {
6

7
}
8

9
typedef void (*func_p)();
10
static const func_p funktionen[] = {
11
  funktion1,
12
  funktion2
13
};
14

15

16
funktionen[x - 1]();

So oder so ähnlich >_>

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.