Codice per la funzione printf in C

Possibile duplicato:
codice sorgente delle funzioni c / c ++

Mi stavo chiedendo dove posso trovare il codice C che viene usato in modo che quando scrivo printf (“Hello World!”); nel mio programma C per sapere che deve stampare quella stringa in STDOUT. Ho cercato in , ma lì ho potuto trovare solo il suo prototipo int printf (const char * format, …), ma non come appare internamente.

Ecco la versione GNU di printf … puoi vederla passare in stdout a vfprintf :

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

Vedere qui.

Ecco un link a vfprintf … tutta la “magia” di formattazione avviene qui.

L’unica cosa veramente “diversa” su queste funzioni è che usano vararg per ottenere argomenti in una lista di argomenti di lunghezza variabile. Oltre a questo, sono solo tradizionali C. (Questo è in contrasto con l’equivalente printf di Pascal, che è implementato con un supporto specifico nel compilatore … almeno era di nuovo nel corso della giornata.)