"We are back" « oc.at

"void" programmiersprache C?

Qualle 30.07.2007 - 13:47 1494 12
Posts

Qualle

Banned
Registered: Jul 2007
Location: Austria
Posts: 46
Hallo zusammen!!

So steht das in meinem Buch:

Was also ist die Ursache für die Fehlermeldung?
Was Sie noch nicht wissen können,leider akzeptiert der Compiler die Anweisung double sqrt2(); nicht als Funktionsprototypen. Die Ursache ist das leere Klammerpaar. Der Compiler nimmt an, Sie hätten vergessen, in den Klammern die Funktionsparameter aufzufüühren und beschwert sich. Tun Sie dem Compiler den Gefallen und weisen explizit darauf hin, dass es sich bei sqrt2 um eine parameterlose Funktion handelt.
Bearbeitet von Qualle am 30.07.2007, 14:12

Nico

former person of interest
Registered: Sep 2006
Location: -
Posts: 4082
welche fehlermeldung?

hctuB

Bloody Newbie
Avatar
Registered: Feb 2002
Location: Pampa LL
Posts: 2410
schon mal ohne klammer versucht ;)

"Tun Sie dem Compiler den Gefallen und weisen explizit darauf hin, dass es sich bei sqrt2 um eine parameterlose Funktion handelt."

Armax

OC Addicted
Registered: Apr 2004
Location: .
Posts: 1058
Was soll bitte die Frage sein?
Was "void" heißt? :confused:
Was willst eigentlich mit einer Funktion der nicht mal irgendein Parameter übergeben wird? Macht das Sinn?
An deiner Stelle würd ich den Prototypen void sqrt2(double zahl1); verwenden, wenn du ein Programm für sqrt(zahl) schreiben willst...

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Kanns sein, dass du extern gegen ein file mit der funktion verlinkt und du das ganze erst mit extern ... anschreiben musst?

void ist nur ein quasi datentyp, damit du einen gegensatz zu int, char ... hast, das bedeutet nur, dass du keinen datentypen hast. Das brauchst du aber auch nur gerade dann, wenn du eine funktion ohne rückgabewert verwendest oder diesen hässlichen void* verwendest.

Mein guter rat, lass es so stehen, wenn die funktionsdefinition wirklich

double sqrt2();

ist und du wirklich keien parameter übergeben willst ist das sowohl c89, als auch c99 konform. Wenn dein compiler trotzdem stänkert würd ich mir einen neuen suchen.

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
Zitat von Armax
Was willst eigentlich mit einer Funktion der nicht mal irgendein Parameter übergeben wird? Macht das Sinn?
in diesem fall zwar nicht aber allgemein:
schon mal was von settern gehoert? setFoo() { foo = bar;}

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12143
Zitat von Lukas
in diesem fall zwar nicht aber allgemein:
schon mal was von settern gehoert? setFoo() { foo = bar;}

Ach, die braucht man doch hauptsaechlich in ekligen Kacksprachen wie Java! :p

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
Zitat von COLOSSUS
Ach, die braucht man doch hauptsaechlich in ekligen Kacksprachen wie Java! :p

oder bei C++ mit dem Qt toolkit was bestimmt kein kack ist :p :o

e: aber hauptsaechlich wird trotzdem, auch bei settern, ein parameter uebergeben...

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14723
he, das setter und getter konzept find i ned eklig :P

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von Lukas
in diesem fall zwar nicht aber allgemein:
schon mal was von settern gehoert?

Klar, das sind irgendwelche Hunde. :p


Zitat von Lukas
setFoo() { foo = bar;}

Normalerweise geht das so:

Code:
void setFoo(int newFoo) { foo = newFoo; }
int getFoo() { return foo; }

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12143
Wenn du noch nie gesehen hast, wie bspw. Ruby das macht, kann ich das auch irgendwo nachvollziehen ;)

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
Zitat von that
Klar, das sind irgendwelche Hunde. :p




Normalerweise geht das so:

Code:
void setFoo(int newFoo) { foo = newFoo; }
int getFoo() { return foo; }

siehe meine edit... hab aber bei so manchen wackeligen KDE-klassen auch setter ohne parameteruebergabe gesehen :p

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
So, genug offtopic. :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz