Gast
#3918457
Wie kann man eine Struktur als Konstante in "case" verwenden?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Ergibt in Visual Studio folgenden Fehler: error C2051: case-Ausdruck ist keine Konstante
|
Anzeige
|
const struct case
Gast
#3918457
Wie kann man eine Struktur als Konstante in "case" verwenden?
Ergibt in Visual Studio folgenden Fehler: error C2051: case-Ausdruck ist keine Konstante ch schrieb: > Wie kann man eine Struktur als Konstante in "case" verwenden? So wie du dir das vorstellst: gar nicht Auch wenn man die Dinger als 'Konstante' bezeichnet, betrachtet sie die Sprache und damit der Compiler als Variablen, die so vereinbart sind, dass man per Programm ihren Wert nicht ändern darf. Das reicht aber nicht für einen case. Da muss tatsächlich eine Compile-Time Konstante stehen. -> auf ein if ausweichen
Gast
#3918531
> -> auf ein if ausweichen
vielen Dank.
Ich hatte schon überlegt, statt der "struct" zwei "defines" zu
verwenden.
aber ich will auch die Struktur als einzelner Parameter einer Funktion übergeben können. Am Ende sind die "if's" wohl am besten.
Gast
#3918539
>aber ich will auch die Struktur als einzelner Parameter einer Funktion >übergeben können. Wenn ein define geht, dann bleibe dabei. Das ist eine Kosntante. Besser als jede Variable.
Gast
#3918995
Hallo, ist wahrscheinlich eine blöde Frage, aber wozu ist die Abfrage überhaupt gut, wenn das Argument eh konstant ist? Nimm C++ und enum
typedef enum
{
a =1,
b =2
} my_type_t;
void funct(my_type_t value)
{
switch (value)
{
case a :
break;
case b :
break;
};
}
int main()
{
funct(a);
return 0;
}
Gast
#3919508
>ist wahrscheinlich eine blöde Frage, aber wozu ist die Abfrage überhaupt >gut, wenn das Argument eh konstant ist? Vielleicht war der Code auch etwas missverständlich, weil ich die switch-Anweisung weggelassen habe
Hans-Georg Lehnard schrieb: > Nimm C++ und enum Wieso C++? Das geht genau so auch in C! o_O
Gast
#3920597
ch schrieb: >>ist wahrscheinlich eine blöde Frage, aber wozu ist die Abfrage überhaupt >>gut, wenn das Argument eh konstant ist? > > Vielleicht war der Code auch etwas missverständlich, weil ich die > switch-Anweisung weggelassen habe Ach so, jetzt hab ich's auch kapiert. Danke Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|