Seite 1 von 1

Funktionen: Diskusionsthread

Verfasst: Mo Jul 07, 2008 9:07 pm
von Metamorph
Ich habe hier einen Diskusionsthread zum Artikel über die Funktionen erstellt.
Hier der Link:

http://tutorial.proggen.org/doku.php?id=c:funktionen

Wenn ihr Verbesserungsvorschläge zur Rechtschreibung, Ausdrucksweise, Vollständigkeit oder den Beispielen habt, dann postet sie bitte in dieses Forum.
Fallen jemandem bessere Beispiele ein?
Ich finde meine grauenhaft. ^^

Re: Funktionen: Diskusionsthread

Verfasst: Mo Jul 07, 2008 10:25 pm
von Kerli
Wie es eh schon einmal erwähnt worden ist solltest du glaub ich [Datentyp] besser durch [Rückgabewert] ersetzen.
Metamorph hat geschrieben:Fallen jemandem bessere Beispiele ein?
Ich finde meine grauenhaft. ^^
So schlecht sind sie doch nicht. Ich würd nur ein Funktion nicht unbedingt add nennen wenn sie eigentlich nicht addieren tut sondern das Ergebnis ausgibt. Das ist vielleicht etwas i-Tüpfelreiterei aber an der Uni hätt mir das schon Punkteabzug gebracht :D
Prototypen haben noch einen weiteren Zweck: Sie helfen dem Compiler Fehler besser zu finden
Wie das? Ich hab davon noch nie gehört...
Du könntest höchstens erwähnen, dass man dadurch die Deklarationen in getrennt headerdateien schreiben kann, aber ws sollten wir da eher ein eigenes Kapitel machen.

Sonst ist es eigentlich eh ganz gut ;)

Re: Funktionen: Diskusionsthread

Verfasst: Mo Jul 07, 2008 10:36 pm
von Metamorph
Danke für die Hinweise.
Kerli hat geschrieben:Wie es eh schon einmal erwähnt worden ist solltest du glaub ich [Datentyp] besser durch [Rückgabewert] ersetzen.
Ups, ich dachte, ich hätte das schon korrigiert. ^^
Kerli hat geschrieben:So schlecht sind sie doch nicht. Ich würd nur ein Funktion nicht unbedingt add nennen wenn sie eigentlich nicht addieren tut sondern das Ergebnis ausgibt. Das ist vielleicht etwas i-Tüpfelreiterei aber an der Uni hätt mir das schon Punkteabzug gebracht :D
Ja, stimmt.
Ich werde mir was einfallen lassen.
Kerli hat geschrieben: Prototypen haben noch einen weiteren Zweck: Sie helfen dem Compiler Fehler besser zu finden

Wie das? Ich hab davon noch nie gehört...
Du könntest höchstens erwähnen, dass man dadurch die Deklarationen in getrennt headerdateien schreiben kann, aber ws sollten wir da eher ein eigenes Kapitel machen.
Aua, da habe ich etwas durcheinandergebracht. :D

Re: Funktionen: Diskusionsthread

Verfasst: Mi Okt 08, 2008 9:38 pm
von nufan
Hab den Text mal kurz überflogen und da ist mir eins aufgefallen:
Es müssen sogar noch nicht einmal die Parameter in die Prototypen eingegeben werden. Man kann auch einfach nur die Datetypen der Parameter, ohne ihre Namen, hineinschreiben. Diese Variante ist zwar zulässig, davon ist aber, aufgrund der Übersicht, strikt abzuraten.
Bei mir geben sowohl Borland als auch Visual C++ 2008 Fehlermeldungen bei folgendem Programm aus:

Code: Alles auswählen

#include <stdio.h>

void function ();

int main ()
{

  int i=0;

  function (i);

  getchar ();
  return 0;

}


void function (int i)
{

  printf ("%d", i);

}
Bei VC++ siehts ein klein wenig anders aus, aber die Fehlermeldung ist im Prinzip die gleiche:
VC++ hat geschrieben:error C2660: 'function': Funktion akzeptiert keine 1 Argumente
Borland hat geschrieben:Error: noname00.cpp(10,15):Extra parameter in call to function()
Also ist das wirklich gültig? Oder compilerabhängig?

Lg

Re: Funktionen: Diskusionsthread

Verfasst: Do Okt 09, 2008 2:00 pm
von Dirty Oerti
Das ist eher so gemeint:

Code: Alles auswählen

int funktion(int);


int main()
{
   int foo = funktion(4);
}

int funktion(int i)
{
   return i;
}
Und das funktioniert auch. Denke ich.
:)

Re: Funktionen: Diskusionsthread

Verfasst: Do Okt 09, 2008 4:21 pm
von nufan
Dirty Oerti hat geschrieben:Das ist eher so gemeint:

Code: Alles auswählen

int funktion(int);


int main()
{
   int foo = funktion(4);
}

int funktion(int i)
{
   return i;
}
Und das funktioniert auch. Denke ich.
:)
Hoppla, hab's wohl zu schnell überflogen :D
So funktionierts natürlich.

Re: Funktionen: Diskusionsthread

Verfasst: Mo Okt 13, 2008 7:17 pm
von fat-lobyte
Mit nem reinen C- Compiler hätts funktioniert.
Versucht mal das mit "gcc" zu kompilieren.

Re: Funktionen: Diskusionsthread

Verfasst: Mo Okt 13, 2008 7:22 pm
von nufan
fat-lobyte hat geschrieben:Mit nem reinen C- Compiler hätts funktioniert.
Versucht mal das mit "gcc" zu kompilieren.
Stimmt. Also hab ichs doch nicht ganz falsch verstanden :)

Re: Funktionen: Diskusionsthread

Verfasst: Do Okt 16, 2008 11:15 am
von fat-lobyte
dani93 hat geschrieben:
fat-lobyte hat geschrieben:Mit nem reinen C- Compiler hätts funktioniert.
Versucht mal das mit "gcc" zu kompilieren.
Stimmt. Also hab ichs doch nicht ganz falsch verstanden :)
Das soll nicht darüber hinwegtäuschen, dass das nach den meisten gängigen C standards nicht erlaubt ist. Kompiliere es mit dem "std=c99" flag, und du wirst (hoffentlich) einen Fehler oder zumindest ein Warning bekommen.
Ich wollte eigentlich nur Zeigen, wie C früher war.