Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Pridať na súbor knižnice STDARG.H do váš program . To je miesto , kde môžete definovať makrá . Na prvom riadku súboru , vložiť # include .
2
Pomocou makier va_arg , va_start a v_end , že spolupracovať s va_type v stdarg.h .
3
Vytvoriť premennú typu § va_list fungovať ako zoznam markeru .
4
Prístup jednotlivých parametrov pomocou va_arg makra . Nájsť spôsob , ako povedať o va_arg makro , aký typ argumentu ho chcete získať dodať správny počet bajtov zo zásobníka .
5
Cast výsledok z kroku 4 na type , ktorý ho chcete byť .
6
Zavolajte va_end makro ukončiť spracovanie rôznych parametrov .
7.
Pozrite sa na nižšie uvedený príklad , ktorý ukazuje , Kroky 2 až 6. Funkcie myprintf prijíma formátovací reťazec , ktorý určuje typ a polohu každého argumentu . Po formátovací reťazec je zoznam argumentov . Funkcia vytlačí argumenty . Pre jednoduchosť je možné len proces int , float a char : HONDA //deklarácia
stratu myprintf ( char * format , ... ) ;
//defintion
void myprintf ( char * format , . .. ) {
§ va_list vl ;
int i ;
va_start ( vl , args ) ;
for ( i = 0 ; args [ i ] = ' \\ 0 ' ; ! + + i ) {
únie any_t {
int i ;
float f ;
char c ;
} existuje ;
if ( args [ i] == ' i ' ) {
any.i = va_arg ( vl , int ) ;
printf ( " % i \\ n" , any.i ) ;
} else
if ( args [ i] == ' f ' ) {
any.f = va_arg ( vl , float ) ;
printf ( " % f \\ n" , any.f ) ;
} else
if ( args [ i] == ' c ' ) {
any.c = va_arg ( vl , char ) ;
printf ( " % c \\ n" , any.c ) ;
}
else {
hodiť SomeException ;
}
va_end ( vl ) ;
}