Forum: Compiler & IDEs Parameterübergabe geht nicht


von Martin (Gast)


Lesenswert?

Hallo Leute,

habe ein ziemlich einfaches Problem, dass ihr sicher gleich lösen
könnt:

Wieso lässt sich folgende Source ncht compilieren?

//--------------------


void quadriere(int& wert);

int main(void)
{
return 0;
}

void quadriere(int& wert)
 {
    wert++;
 };

//--------------------

vielen Dank an euch

von peter dannegger (Gast)


Lesenswert?

& liefert die Adresse einer Variablen, ist also als Typdeklaration
völlig ungeeignet.


Peter

von Martin (Gast)


Lesenswert?

Laut meinem C buch (aus dem dieses beispiel ist)
soll dass eine Parameterübergabe per referenz sein.

D.H. man übergibt eine Variable direkt anstatt nur eine Kopie

in Visual Studio Funktioniert dass auch nur nicht beim GCC

sonst noch vorschläge?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Dein C-Buch sollte bitte schön auch C++ drauf schreiben.

GCC kann auch C++, aber du musst ihm das dann bitte auch sagen,
dass es eine C++-Datei ist.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peters Aussage trifft nur dann zu, wenn es um C anstelle von C++ geht.

In C++ ist das eine Referenz, und soweit vollkommen in Ordnung. Das ist
gültiger C++-Sourcecode.

Warum sich der Quelltext nicht compilieren lässt, werden die
Fehlermeldungen des Compilers verraten.
Ansehen, bei Nichtverständnis hier posten, gezielt fragen!

Lautet die Dateinamenserweiterung (Extension) der Quelltextdatei
zufälligerweise .c?

Versuch's mal mit .cpp.

Der Quelltext macht allerdings nichts; in main() wird die Funktion
quadriere() gar nicht aufgerufen.

  int main(void)
  {
    int bla;

    bla = 2;

    quadriere(bla);

    // bla ansehen/ausgeben/was auch immer
  }

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

das ist *C++*. In C gibt es die Parameterübergabe in dieser Weise
nicht. Du mußt einen Pointer übergeben.

Matthias

von Martin (Gast)


Lesenswert?

Ok, danke. dass war die entscheidente Info

hab in der Schule c++ gelernt, verwende jetzt aber c
mal sehen was noch für überraschungen auf mich warten

cu

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.