Code pour la fonction printf en C

Duplication possible:
code source des fonctions c / c ++

Je me demandais où je peux trouver le code C qui est utilisé pour que lorsque j’écris printf (“Hello World!”); dans mon programme C pour savoir qu’il doit imprimer cette chaîne à STDOUT. J’ai regardé dans , mais là je n’ai pu trouver que son prototype int printf (format const char *, …), mais pas à quoi cela ressemble en interne.

Voici la version GNU de printf … vous pouvez le voir passer stdout à vfprintf :

 __printf (const char *format, ...) { va_list arg; int done; va_start (arg, format); done = vfprintf (stdout, format, arg); va_end (arg); return done; } 

Vois ici.

Voici un lien vers vfprintf … tout le formatage ‘magic’ se produit ici.

La seule chose vraiment différente de ces fonctions est qu’elles utilisent varargs pour obtenir des arguments dans une liste d’arguments de longueur variable. En dehors de cela, ils sont juste traditionnels C. (Ceci est en contraste avec l’équivalent printf de Pascal, qui est implémenté avec un support spécifique dans le compilateur … au moins, il était de retour dans la journée).