Hallo Leute!
Ich beschäftige mich gerade mit Funktionen deren Werte unterschiedlich
übergeben werden können. Das erste Beispiel wäre den Wert übergeben
siehe dazu Fall 1). Das erste Beispiel funktioniert wunderbar. Aber wenn
ichs versuche mit einem Zeiger zu übergeben (Fall 2), dann meckert der
gcc compiler. Die Fehlermeldung sagt mir, dass "menue_liste" und "int"
nicht kompatibel ist und ein "lvalue" sein muss, was es auch immer sein
mag.
Könnte mir ein Erfahrener sagen, woran es hapern könnte? Muss die
enumeration "menu_liste" ein Zeiger sein? Ich versuchte es auch mit
einem Zeiger, aber er gibt mir immer die gleiche Meldung.
Ich bedanke mich für eure Antworten schon im voraus!
Fall 1) Funktioniert mit Übergabe
1 | #include <stdio.h>
|
2 | typedef enum
|
3 | {
|
4 | menu1 = (int) 1,
|
5 | menu3 = (int) 3,
|
6 | menu5 = (int) 5,
|
7 | } menu_liste;
|
8 |
|
9 | void menu_auswahl(menu_liste menux)
|
10 | {
|
11 | if (menux == 1)
|
12 | {
|
13 | printf("Menue 1 wurde gewaehlt!");
|
14 | }
|
15 | }
|
16 |
|
17 |
|
18 | int main()
|
19 | {
|
20 | menu_auswahl(menu1);
|
21 | }
|
Fall 2) geht nicht (Zeiger)
1 | #include <stdio.h>
|
2 | typedef enum
|
3 | {
|
4 | menu1 = (int) 1,
|
5 | menu3 = (int) 3,
|
6 | menu5 = (int) 5,
|
7 | } menu_liste;
|
8 |
|
9 | void menu_auswahl(menu_liste *menux)
|
10 | {
|
11 | if (menux == 1)
|
12 | {
|
13 | printf("Menue 1 wurde gewaehlt!");
|
14 | }
|
15 | }
|
16 |
|
17 |
|
18 | int main()
|
19 | {
|
20 | menu_auswahl(&menu1);
|
21 | }
|