Följaktligen ger ett körtidsanrop till en C-stil variadisk funktion som skickar olämpliga argument odefinierat beteende. … Sådant odefinierat beteende skulle kunna utnyttjas för att köra godtycklig kod.
Vad är variadisk funktion i C?
Variadiska funktioner är funktioner som kan ta ett varierande antal argument. I C-programmering ger en variadisk funktion flexibilitet till programmet. Det krävs ett fast argument och sedan kan valfritt antal argument skickas.
Är Variadic-funktionerna dåliga?
Skälen är: Variadiska mallfunktioner känner till både antalet och typen av sina argument. De är typsäkra, ändra inte typ av deras argument.
Hur deklarerar man en variadisk funktion i C++?
Variadiska funktioner är funktioner (t.ex. std::printf) som tar ett variabelt antal argument. För att deklarera en variadisk funktion visas en ellips efter listan med parametrar, t.ex. int printf(const char format…);, som kan föregås av ett valfritt kommatecken.
Hur skickar du variadiska parametrar till en annan funktion?
Du kan inte skicka de variadiska argumenten till en variadisk funktion. Istället måste anropa en funktion som tar en va_list som argument. Standardbiblioteket tillhandahåller varianter av printf och scanf som tar en va_list; deras namn har prefixet v.