Hallo Stefan
Es gibt ja Standardfunktionen wie „printf“, bei der die Anzahl
der Parameter nicht festgelegt ist. Ich hab mir mal „stdio.h“
angeguckt. Dort steht
int printf(const char *,
…);
Sind die drei Punkte das Symbol für unbegrenzte
Parameter, und wie kann man so etwas programmieren(„stdio.c“
ist ja nicht aufzutreiben, um sichs anzugucken)
Wie Nicos schon schrieb - das ist nur was
für harte Männer und Assemblerprogrammierer.
Man braucht, um es schadenfrei anzuwenden,
einige Kentnisse über die Maschine und
die Laufzeitumgebung. Es kann funktionieren …
Es lässt sich nahezu immer eine bessere
Variante basteln (mit einem Array), aber
manchmal ist es schon ganz praktisch
(wenn auch sehr selten).
Hier mal zwei Beispiele, wie man sowas
prinzipiell verwendet. Das eine berechnet
eine Summe aus beliebig vielen Summanden
(deren Anzahl man hier angeben muss!)
sowie die Erzeugung eines formatierten
strings (ähnlich sprintf).
#include
#include
int Summe\_von (int anzahl, ...)
{
va\_list argptr;
int i, summe;
va\_start( argptr, anzahl );
for (i=0,summe=0; iViellecht findest Du einige
Stellen im Code, die diese Art der
Funktionen "angreifbar" machen :wink:
Grüße
CMБ