Definerer du ikke en c-stil variadisk funktion?

Indholdsfortegnelse:

Definerer du ikke en c-stil variadisk funktion?
Definerer du ikke en c-stil variadisk funktion?
Anonim

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.

Anbefalede: