Moin, ich habe versucht bei meiner Funktion/Funktionsbezeichner den Argumenten, am Anfang meines Projektes, gleich einen Wert mit auf den Weg zu geben. Das geht entweder nicht oder aber ich mach das falsch. Als Beispiel: unsigned char Funktion(unsigned char Argument = 0, bool CRC_A = false); Geht das nicht, wie macht man es dann richtig? Gruß dat Beast
Andreas G. schrieb: > Moin, > > ich habe versucht bei meiner Funktion/Funktionsbezeichner den > Argumenten, am Anfang meines Projektes, gleich einen Wert mit auf den > Weg zu geben. > Das geht entweder nicht oder aber ich mach das falsch. Wozu soll das gut sein? Es gibt die Möglichkeit in einigen Sprachen (z.B. C++) Argumenten default-Werten zuzuweisen, die dann beim Aufrufen weggelassen werden können. > Als Beispiel: > > unsigned char Funktion(unsigned char Argument = 0, bool CRC_A = false); > > Geht das nicht, wie macht man es dann richtig? In C geht das nicht, richtig. In C++ würde es so aussehen:
1 | #include <cstdio> |
2 | |
3 | void foo(int a, bool b=false) { |
4 | printf("int=%d, bool=%s\n", a, b?"true":"false"); |
5 | }
|
6 | |
7 | int main() { |
8 | foo(42, true); |
9 | foo(42); |
10 | return 0; |
11 | }
|
Gibt aus Ausgabe:
1 | int=42, bool=true |
2 | int=42, bool=false |
Also im Prinzip so wie du es machen wolltest. Aber eben nur in C++, nicht in C. Mit freunclichen Grüßen, N.G.
N. G. schrieb: > Also im Prinzip so wie du es machen wolltest. Jaaa, es ist exakt so wie ich das gern hätte, und auch bei dem Arduino-Code gesehen hab...wenn es aber nicht geht dann werde ich die fehlenden default-Werte händisch beim Aufruf der Funktion zuschreiben. Gruß Beast
Andreas G. schrieb: > wenn es aber nicht geht... Ich kenne den Compiler nicht, aber kann der kein C++? Benenne doch testweise einfach mal deine Source-Datei in .cpp und und probiere einen Compile-Vorgang. (Fast) Jeder C-Code ist auch legitimer C++-Code, das bedeutet, wenn die dieses Feature soo wichtig ist kannst du dein Projekt auf C++ umstellen. Dann hättest du auch noch ein paar andere super C++-Features. Hängt natürlich vom Compiler ab. Aber im Ernst: nur deswegen würde ich nicht auf C++ umsteigen, dann würde ich mehr davon verwenden. Ich wollte nur die Möglichkeit klar stellen ;-) Mit freundlichen Grüßen, N.G.
> Jaaa, es ist exakt so wie ich das gern hätte, und auch bei dem > Arduino-Code gesehen hab. Sei froh das XC8 keine Faust hat.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.