Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 20 Arbeiten mit variablen langen Argumentlisten – <stdarg.h>
  gp 20.1 Makros in <stdarg.h> – va_list, va_arg, va_start und va_end
  gp 20.2 Argumentliste am Anfang oder Ende kennzeichnen
  gp 20.3 vprintf, vsprintf und vfsprintf

Kapitel 20 Arbeiten mit variablen langen Argumentlisten – <stdarg.h>

In diesem Kapitel lernen Sie Möglichkeiten kennen, wie Sie Funktionen mit einer variablen Anzahl von Argumenten aufrufen können.

Dass in C Funktionen mit variablen langen Argumentlisten aufgerufen werden können, dürfte Ihnen an Funktionen wie printf() oder scanf() bereits aufgefallen sein. Die Deklaration von printf() sieht wie folgt aus:

int printf(const char*format, ...);

Anhand dieser Deklaration erkennen Sie auch, dass printf() mindestens ein festes Argument (const char *format) und eine variable Anzahl optionaler Argumente erwartet. Die variable Anzahl optionaler Argumente erkennen Sie an den drei Punkten, dem zweiten Parameter von printf(). Diese drei Punkte werden Ellipse genannt. Die Verwendung von printf() ohne weitere Argumente kennen Sie ja:

printf("ohne weitere Argumente\n");

Jetzt dasselbe mit zwei Argumenten:

printf("Ich habe %d %s\n", argument2, argument1);

Anhand der beiden Formatzeichen %d und %s ist jetzt bekannt, dass dort zwei Argumente folgen.


Galileo Computing - Zum Seitenanfang

20.1 Makros in <stdarg.h> – va_list, va_arg, va_start und va_end  toptop

Um eigene Funktionen mit einer variablen Argumentliste zu schreiben, sind in der Headerdatei <stdarg.h> folgende vier Makros deklariert:


Tabelle 20.1   Makros der Headerdatei stdarg.h

Makro Syntax Bedeutung
va_list va_list name; abstrakter Datentyp, mit dem die Liste der Parameter definiert wird
va_start va_start(va_list name,lastarg); Argumentliste wird initialisiert
va_arg typ=va_arg(va_list name,typ); liest den nächsten Parameter in der Argumentliste
va_end void va_end(va_list name); schließt die Argumentliste

 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de