Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur man använder variabel parameter funktioner i C + +

    De flesta funktioner accepterar ett fast antal argument . Vissa program kräver dock funktioner för att acceptera variabla parametrar . Ett välkänt exempel är utskriftsfunktionen i C. För sådana fall , C + + erbjuder en kraftfull lösning som låter kompilatorn dechiffrera de argument vid körning . Läs vidare för en tutorial som visar hur man ska genomföra sådana funktioner . Saker du behöver
    Intermediate C + + Review C + + kompilator med IDE , till exempel Microsoft Visual C + +
    Visa fler instruktioner
    1

    Lägg till STDARG.H biblioteket filen i ditt program . Det är där du definiera makron . På första raden i filen , sätt # include .
    2

    Använd makron va_arg , va_start och v_end som samarbetar med va_type i stdarg.h .
    3

    Upprätta en variabel av typen va_list att fungera som en lista markör .
    4

    Åtkomst de enskilda parametrarna med hjälp av va_arg makro. Hitta ett sätt att berätta den va_arg makro vilken typ av argument du vill att det ska hämta för att leverera rätt antal byte från stacken .
    5

    Kasta resultatet från steg 4 till den typ du vill ha det att vara .
    6

    Ring va_end makrot att avsluta behandlingen av variabla parametrar .
    7

    Titta på exemplet nedan som visar steg 2 till 6 . Funktionen accepterar myprintf ett format sträng som anger vilken typ och position för varje argument . Efter formatsträng är listan över argument . Funktionen skriver argumenten. För enkelhets skull kan bara bearbeta int , float och char :
    //deklaration
    void myprintf ( char * format , ... ) , kommenterar: //Definition
    void myprintf ( char * format . .. ) {
    va_list vl ,
    int i;
    va_start ( VL , args ) ;
    for (i = 0 ; args [ i] = ' \\ 0 ' ; ! + + i) {
    fackliga any_t {
    int i;
    float f ,
    char c ,
    } någon ,
    om ( args [ i] == ' I ' ) {
    any.i = va_arg ( VL , int ) ;
    printf ( " % i \\ n " , any.i ) ;
    } else
    om ( args [ i] == ' f ' ) {
    any.f = va_arg ( VL , float ) ,
    printf ( " % f \\ n " , any.f ) ;
    } else
    om ( args [ i] == ' c ' ) {
    any.c = va_arg ( VL , röding ) ,
    printf ( " % c \\ n " , any.c ) ;
    }
    else {
    kasta SomeException ;
    }
    va_end ( vl ) ,
    }

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man gör en rektangel med en rekursiv funktion i C …
    ·Hur man gör en C + + Void Display
    ·Hur att bädda in en databas i en Mac App
    ·Hur man använder C + + class Mallar
    ·Hur att utveckla applikationer för Windows Mobile
    ·Hur man lära sig programmering datorspelsutveckling Me…
    ·Hur man skriver ett program i C för att skriva ut en s…
    ·Hur man gör en X -och Y- Grid i C + + Text Game
    ·Så här visar GridView på en separat sida
    ·Hur till Omvänd ett gemensamt länkad lista
    Utvalda artiklarna
    ·Hur man läser från mitten av en array i Perl
    ·Hur man beräknar Graycode
    ·Hur man sätter i MySQL med PHP
    ·Hur man gör en Auto Clicker i Visual Basic 2010
    ·Hur man installerar FlexGrid kontroll
    ·Hur man hanterar äldre webbläsare med Javascript
    ·PHP File Upload Typer
    ·Hur man installerar en blandras Ruby 1.9.2
    ·Hur du installerar PHP på IIS 6.0
    ·Vad är csc.exe Från Microsoft Corporation
    Copyright © Dator Kunskap http://www.dator.xyz