Stdarg.h
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 19. toukokuuta 2022 tarkistetusta
versiosta . tarkastukset vaativat
2 muokkausta .
stdarg.h on C-ohjelmointikielen vakiokirjaston otsikkotiedosto , joka tarjoaa keinon iteroida funktion argumentteja , joiden lukumäärää ja tyyppejä ei tiedetä etukäteen.
Sisältöä stdarg.hkäytetään usein funktioissa, joissa on mielivaltainen määrä argumentteja (esim. printf , scanf ).
Otsikkotiedosto määrittää sen toimintojen tyypin va_listja funktioiden joukon: va_start, va_arg, va_copy( C99 ), va_end.
#include <stdarg.h>
kirjoita va_arg ( va_list ap , tyyppi );
void va_copy ( va_list dest , va_list src );
void va_end ( va_list ap );
void va_start ( va_list ap , parmN );
Makroa va_start käytetään muuttujaargumenttien luettelon alustamiseen, ja sillä on oltava vastaava va_end-kutsu. Makroa va_argkäytetään pääsyyn seuraavaan argumenttiin ja va_copy- tyypin objektien kopioimiseen va_list. [yksi]
Esimerkki
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
void var ( char * muoto , ...)
{
va_list ap ;
va_start ( ap , muoto );
if ( ! strcmp ( muoto , "%d" ))
{
int x = va_arg ( ap , int );
printf ( "Syötit desimaaliobjektin arvolla %d \n " , x );
}
if ( ! strcmp ( muoto , " %s " ))
{
char * p = va_arg ( ap , char * );
printf ( "Osoitit c-merkkijonon \" %s \"\n " , p );
}
va_end ( ap );
}
int main ( tyhjä )
{
var ( "%d" , 255 );
var ( "%s" , "testimerkkijono" );
paluu 0 ;
}
Kirjallisuus
- Brian Kernigan, Dennis Ritchie C-ohjelmointikieli = C-ohjelmointikieli. - 2. painos - Williams Publishing House . — 304 s. — ISBN 978-5-8459-0891-9 .
Muistiinpanot
- ↑ ISO/IEC 9899:1999 . Haettu 4. elokuuta 2011. Arkistoitu alkuperäisestä 22. elokuuta 2011. (määrätön)