[C] Datentyp deklaration nach Wahl

Razorhawk

Webdesigner und MSP
Ich schreibe gerade eine Mathfunktion

zetariehmann(float exponent,char genauigkeit);

die Funktion soll mir eine Riehmannsumme berechnen.
Aus testzwecken soll es einmal in einfacher Genauigkeit und einmal in doppelter Genauigkeit berechnet werden.
Sprich in float und double.

Gibt es nun eine Möglichkeit in C durch die Variable "genauigkeit" welche entweder 'f' oder 'd' enthalten kann die variablen demnach zu deklarieren, so dass es auch im C90 Standard funktioniert?

Also ich möchte den Benutzer die wahl überlassen ob floatwerte oder doublewerte deklariert werden.
Ich möchte ungern doppelt variablen deklarieren wobei immer nur eine Hälfte wirklich genutzt wird!
 
Ja okay, aber Datentypen der Eingabewerte sind ja nicht wichtig, sondern die Varaiblen die in der Funktion berechnet werden.

Korrigier mich wenn ich falsch liege, aber überladen lohnt doch nur, wenn ich gleiche Eingabewerte habe mit unterschiedlichen Datentypen.
 
Hi.

Man kann in C keine Funktionen überladen.

Für deine Zwecke mußt du entweder in der Funktion die Berechnung doppelt programmieren und mit einer if-Anweisung verzweigen oder du definierst wie sonst üblich 2 Funktionen wie es auch in der C Bibliothek gemacht wird:

Code:
double sqrt(double);
float sqrtf(float);

Gruß
 
Achja eine Frage noch... wo bzw. wie gebe ich an, dass ich mehr als die Standardmäßigen 6 Stellen hinterm Komma angegeben haben möchte bei float und double-Werten?
 
Schon gut habs selbst rausgefunden:

es mus %y.xf

angegeben werden wobei y für die Stellen vor dem Komma und x für die Stellen nach dem Komma stehen :)
 
deepthroat hat gesagt.:
Hi.

Man kann in C keine Funktionen überladen.
...
sonst üblich 2 Funktionen wie es auch in der C Bibliothek gemacht wird:

Code:
double sqrt(double);
float sqrtf(float);

Gruß

Und wie heißt das dann was du da machst? Bzw wie heißt das dann in C?
Eine Funktion ist meiner Meinung nach dann überladen wenn sie
den gleichen Namen besitzt aber unterschiedliche Parametertypen
verpasst bekommt unabhängig jetzt mal davon ob das in C oder C++
passiert.

http://www.devx.com/tips/Tip/12606

Gruß

RedWing
 
Zurück