hier wird der funktion "addiere" eine reihe von integern übergeben. va_arg(ap,int) liefert bei jedem aufruf jeweils den nächsten wert. da ich grade selber nicht weiss, wie man das ende der liste erkennt, steht als erster parameter der funktion die anzahl der übergebenen werte. das ... bleibt so stehen, der code compiliert bei mir klaglos.
vielleicht hilft das, am besten du spielst selbst ein wenig mit dem code.Code:#include <stdio.h> // für printf #include <stdarg.h> // für variable parameterlisten int addiere(const int anzahl, ...) { va_list ap; int n,result=0; va_start(ap, anzahl); for(n=0;n<anzahl;n++) { result+=va_arg(ap,int); } va_end(ap); return result; } int main() { // 5 argumente, nämlich die werte 1-5 int i=addiere(5,1,2,3,4,5); printf("%d",i); return 0; }
gruesse
EDIT:
nur die ruhe, nicht schreienKANN ICH EINE ÜBERLADENE FUNKTION HERNEHMEN UND WAS MUSS ICH INCLUDEN???
ehrlichgesagt, ich weiss es nicht, weil ich dazu von c++ zuwenig ahnung habe. aber avr-gcc unterstützt (teilweise) c++, also könntest du es einfach mal ausprobieren.







Zitieren

Lesezeichen