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

  1. ISO/IEC 9899:1999 . Haettu 4. elokuuta 2011. Arkistoitu alkuperäisestä 22. elokuuta 2011.