Forum: Compiler & IDEs Funktionsbeschreibung + char-Zeiger


von Jörg (Gast)


Lesenswert?

Hallo,

ich möchte folgende Funktion programmieren:

int setParameter(char *Parametername, int value)
{
switch (Parametername)
  {
   case "Parameter1":...
   case "Parameter2":...
  }
}

Funktionsaufruf:
setParameter(Paramter1,1243);

Würde das so gehen? Bin mir mit den Zeigern noch unsicher.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das geht nicht, switch kann nur ganzzahlige Ausdrücke auswerten, keine 
Zeichenketten.

von Markus E. (engelmarkus)


Lesenswert?

Du kannst es mit if machen, allerdings darfst du natürlich nicht einfach 
den Zeiger mit einem Stringliteral vergleichen. Wenn dann musst du 
strcmp oder sowas hernehmen.
Könntest du das nicht mit einer enum vereinfachen? Oder weißt du erst 
zur Laufzeit die gültigen Parameternamen?

von narf (Gast)


Lesenswert?

1
typedef enum
2
{
3
  PARAMETER1,
4
  PARAMETER2,
5
  PARAMETER3,
6
  PARAMETER4,
7
}ParameterType;
8
9
int setParameter(ParameterType Parametername, int value)
10
{
11
switch (Parametername)
12
  {
13
   case PARAMETER1:
14
           break;
15
   case PARAMETER2:
16
           break;
17
   case PARAMETER3:
18
           break;
19
   case PARAMETER4:
20
           break;
21
  }
22
}
23
24
Funktionsaufruf:
25
setParameter( PARAMETER1 ,1243);

von Jörg (Gast)


Lesenswert?

Danke!!

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.