Partage
  • Partager sur Facebook
  • Partager sur Twitter

Stdarg.h

how does it work?

Sujet résolu
    13 décembre 2019 à 12:35:18

    Hi everyone, i'm a beginner in c, i'm actually recoding printf and i'm trying to understand how do va_arg, va_start, va_end work, i read the stdarg.h but i couldn't get it

    00006 #ifndef STDARG_H

    00007 #define STDARG_H

    00009typedefchar *va_list;

    00011#define va_rounded_size(type) \

    00012 (((sizeof (type) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))

    00014#define va_start(ap, v) \

    00015 ((void) (ap = (va_list) &v + va_rounded_size (v)))

    00016

    00017#define va_arg(ap, type) \

    00018 (ap += va_rounded_size (type), *((type *)(ap - va_rounded_size (type))))

    00019

    00020#define va_end(ap) ((void) (ap = 0))

    00021

    00022 #endif


    i would be thankful if someone explained it to me :) :)

    -
    Edité par ZakariaElBaghazaoui 13 décembre 2019 à 12:36:31

    • Partager sur Facebook
    • Partager sur Twitter

    Stdarg.h

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown