Følgelig giver et runtime-kald til en C-stil variadisk funktion, der sender upassende argumenter, udefineret behavior. … En sådan udefineret adfærd kunne udnyttes til at køre vilkårlig kode.
Hvad er variadisk funktion i C?
Variadiske funktioner er funktioner, der kan tage et variabelt antal argumenter. I C-programmering tilføjer en variadisk funktion fleksibilitet til programmet. Det kræver et fast argument, og så kan et hvilket som helst antal argumenter sendes.
Er Variadic-funktioner dårlige?
Årsagerne er: Variadiske skabelonfunktioner kender både antallet og typen af deres argumenter. De er typesikre, skift ikke typen af deres argumenter.
Hvordan erklærer man en variadisk funktion i C++?
Variadiske funktioner er funktioner (f.eks. std::printf), som tager et variabelt antal argumenter. For at erklære en variadisk funktion vises en ellipse efter listen over parametre, f.eks. int printf(const char format…);, som kan indledes med et valgfrit komma.
Hvordan sender du variadiske parametre til en anden funktion?
Du kan ikke overføre de variadiske argumenter til en variadisk funktion. I stedet for du skal kalde en funktion, der tager en va_list som argument. Standardbiblioteket giver varianter af printf og scanf, der tager en va_list; deres navne har præfikset v.