In C Signatur vereinfachen?
also die Paramter:
funktion(int zahl1, int zahl2, int zahl3, int zahl4, int zahl5, int zahl6){ }
gibt es einen weg dieses int auch zusammenzufassen also so mäßig:
funktion (int(zahl1, zahl2, ...))
?
2 Antworten
Mit Arrays beispielsweise:
funktion(int zahl[], size_t size);
Und dann greifst du auf die einzelnen Zahlen folgendermaßen zu:
zahl[0];
zahl[1];
zahl[2];
zahl[3];
zqhl[4];
zahl[5];
Über das zusätzliche Parameter "size" gibst du die Größe des Arrays an, damit du nicht aus Versehen auf ein Element des Arrays zugreifst, das nicht existiert (das wirft dir dann womöglich einen Fehler...oder auch nicht, was noch schlimmer ist, denn dann schreibst du irgendwo in deinen Speicher, ohne es zu merken.)
Bestenfalls kannst du einen Pointer auf ein Array übergeben:
funktion(int* zahl)
Dann musst du aber:
- Die Funktion mit einem Array aufrufen
- Die Länge des Arrays in der Funktion kennen
Nein, in C muss für jeden Parameter der Typ bekannt sein. Die genannte Schreibweise geht nicht. Das wäre ein Funktionsaufruf innerhalb der Paramterliste.
uff also nichts triviales ok danke, dachte gibt wieder sowas ähnliches wie x= x+1 ist ja das gleich wie x++