subroutine iinerhalb einer switch

Gast #1329118
Lesenswert?
• ▲
▼
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
}
#1329130
Lesenswert?
• ▲
▼
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 #1329131
Lesenswert?
• ▲
▼
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 #1329135
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren