Forum: Mikrocontroller und Digitale Elektronik error: expected expression before ‘int’


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Wado U. (racole)


Angehängte Dateien:

Bewertung
-3 lesenswert
nicht lesenswert
error: expected expression before ‘int’

: Bearbeitet durch User
von 3d gedruckte µChips (Gast)


Bewertung
0 lesenswert
nicht lesenswert
loescheKnoten(42);

von Veit D. (devil-elec)


Bewertung
3 lesenswert
nicht lesenswert
Hallo,

man postet Code nicht als Bild.

In dem switch case muss das int von loescheKnoten(int x) weg. Ob noch 
mit dem x etwas nicht stimmt ist nicht ersichtlich.

von Wado U. (racole)


Bewertung
-2 lesenswert
nicht lesenswert
hmm komisch klappt so, aber warum 42 oder auch warum eine zahl jetzt

von zu Wenig Info (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Funktionsdeklaration:

loescheKnoten(int x){
...
}

Funktionsaufruf:


...

loescheKnoten(42);

...

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
Wado U. schrieb:
> Ich sollte in einen Code eine Funktion hinzufügen, das hab ich auch
> gemacht aber ich kann nun den Code nicht ausführen.

Logisch, weil schon der Compiler streikt.

> Ich habe deshalb oben im Code die Funktion hinzugefügt, dann später
> unten in die main ein case 3 hinzugefügt für die Funktion(siehe Bild).

Unsinn! Zeig und dein Originalquelltext im Anhang als Textdatei! Siehe 
Netiquette.

> main.c: In function ‘main’:
> main.c:201:13: error: too few arguments to function ‘loescheKnoten’
>              loescheKnoten();

Dein Funktion hätte gern ein paar Argumente.

>              ^~~~~~~~~~~~~
> main.c:59:6: note: declared here
>  void loescheKnoten(int x){

Das ist die Deklaration, also die Beschreibung, wie die Argumente 
aussehen sollen (Datentyp).

>       ^~~~~~~~~~~~~
>
> Deshalb habe ich es danach so versucht:
> case 3:
> loescheKnoten(int x);

Unsinn.

> break;
> Und so bekomm ich jetzt diesen Fehler:
> main.c: In function ‘main’:
> main.c:201:27: error: expected expression before ‘int’
>              loescheKnoten(int x);

Logisch. Du solltest mal ein C-Buch lesen und den Unterschied zwischen 
der Deklaration einer Funktion (oben) und dem Aufruf einer Funktion 
erkennen.

Versuchs mal mit loescheKnoten(42);

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
Oh Gott, drei Dumme, ein Gedanke!!! ;-)

42!

von jungeJungejunge (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
>hmm komisch klappt so, aber warum 42 oder auch warum eine zahl jetzt

Du hast doch selbst die Funktion so definiert? :D

von jungeJungejunge (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Oh Gott, drei Dumme, ein Gedanke!!! ;-)

>42!

Spooky! :D

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
jungeJungejunge schrieb:
> Du hast doch selbst die Funktion so definiert? :D

Er hat gar nix definiert, er kopiert und murkst nur wild in fremden 
Quelltexten rum.

von jungeJungejunge (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Er hat gar nix definiert, er kopiert und murkst nur wild in fremden
>Quelltexten rum.

Wir waren alle mal klein. Das wird schon.

von AtariST (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wie soll der Compiler klarkommen, wenn du der Funktion keine Variable, 
sondern eine Variablendeklaration übergibst?

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Oh Gott, drei Dumme, ein Gedanke!!!
Kein Wunder!

Bei dem Thema gibts keine 2 Meinungen.
Also müssen alle das gleiche sagen.

von Wado U. (racole)


Bewertung
-1 lesenswert
nicht lesenswert
jungeJungejunge schrieb:
>>hmm komisch klappt so, aber warum 42 oder auch warum eine zahl
> jetzt
>
> Du hast doch selbst die Funktion so definiert? :D

warum 42 ? Also was hat diese 42 jetzt zu bedeuten, was passiert wenn 
ich 50 eingebe?

von Stefan ⛄ F. (stefanus)


Bewertung
2 lesenswert
nicht lesenswert
Wado U. schrieb:
> warum 42

Weil 42 eine Zahl ist. Besser ist aber 2042, weil mehr ist immer besser.

von Wegstaben V. (wegstabenverbuchsler)


Bewertung
1 lesenswert
nicht lesenswert
Wado U. schrieb:
> warum 42 ? Also was hat diese 42 jetzt zu bedeuten,

ok, ich mach mal den Witze-Erklärer:

dieser Hinweis führt dich in die Irre:
https://de.wikipedia.org/wiki/42

hier gäbe es eine größere Auswahl, warum 42:
https://de.wikipedia.org/wiki/42_(Begriffskl%C3%A4rung)

das ist schließlich die richtige Antwort auf deine Frage:
https://de.wikipedia.org/wiki/42_(Antwort)

Der zweite Satz dieses Artikels beschreibt die Situation, in der sich 
die auf deine Frage antwortenden Foren-Teilnehmer befanden ... und 
bedeutet nix anderes, als dass die Antwort auf alle Fragen in Nerdistan 
halt 42 ist.

Zufälligerweise ist es auch noch eine Integer-ZAhl, und das passt als 
Datentyp programmtechnisch genau zu deinem Funktionsaufruf

Wado U. schrieb:
> was passiert wenn ich 50 eingebe?

Trau dich, mache es und finde es selber heraus. Manche Dinge im Leben 
(z.B. mal die andere Hand beim Wasser ablassen nehmen) muss man selber 
ausprobieren, um heraus zu finden was passiert!

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.