Forum: Mikrocontroller und Digitale Elektronik Funktion mit 1 oder 2 parameter


von Frank (Gast)


Lesenswert?

Hallo,
ich habe eine Funktion, der ich einen String und einen Wert übergebe.
Ist es möglich dies variable zu machen? also wenn ich keinen String 
übergebe, dass er nur die variable bearbeitet?
Es soll auf ein display angezeigt werden. In der ersten Zeile soll der 
STring, in der zweiten Zeile soll der Wert. Wenn kein String gegeben 
ist, soll ein vorher definierter String benutzt werden.

von Peter II (Gast)


Lesenswert?

Warum sollte das nicht möglich sein?

Aber wir kennen ja auch nicht die Programmiersprache.

von Versuch (Gast)


Lesenswert?

Nehmen wir mal an du meinst irgend ein Standard C...
dann könnte das einfach so aussehen.

Variante 1: funktion("String", 25);
Variante 2: funktion("\0", 25);

in Fortran, Basic, Brainfuck würde das aber sicher anders sein.

von Cyblord -. (cyblord)


Lesenswert?

Was du suchst nennt sich "Funktionsüberladung". Gibt's in C leider 
nicht.

Aber viele Work arounds: Übergabe von NULL, varargs usw.

von Peter II (Gast)


Lesenswert?

Versuch schrieb:
> Variante 1: funktion("String", 25);
> Variante 2: funktion("\0", 25);

was soll denn der mist mit der \0 ?

leerstring kann man als "" schreiben und wenn man nichts übergeben will, 
dann null.

Variante 1: funktion("String", 25);
Variante 2: funktion(NULL, 25);

von Teo D. (teoderix)


Lesenswert?

Bin jetzt nicht der C Spezialist.
Über gib halt einen leeren String und überprüfe dann ob was gemacht 
werden muss o.nicht.

von Frank (Gast)


Lesenswert?

Ah, ja die programmiersprache hätte ich euch sagen können/müssen.
Ist aber normales C.
Dann werde ich den string wohl immer mit übergeben. wird wohl am 
einfachsten werden.
hätte ja sein können, dass es dafür ein befehl gibt, der nachguckt, was 
da ist.
danke

von Cyblord -. (cyblord)


Lesenswert?

Frank schrieb:
> hätte ja sein können, dass es dafür ein befehl gibt, der nachguckt, was
> da ist.
> danke

"Befehle" gibt's in C schon mal gar nicht.

von Heinz L. (ducttape)


Lesenswert?

Variable Parameterlisten gibt's schon, Funktionen wie beispielsweise 
printf funktionieren so, aber irgend 'ne Idee braucht die Funktion 
trotzdem worauf sie sich einlassen sollte. Nennt sich Variadische 
Funktion, http://en.wikipedia.org/wiki/Variadic_function

In Deinem Fall ist es aber wahrscheinlich 10x leichter einfach den 2. 
Parameter halt leer zu übergeben, schon allein wegen Overhead.

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.