Если вы хотите использовать свою собственную версию printf, вы можете сделать что-то подобное, как только она будет определена
/*
* Make printfs use your new printf
*/
#define printf my_printf
и определите свой my_printf
как хотите
Что касается того, как printf может быть написан, взгляните на язык программирования C от K & R. В нем есть раздел о том, как можно написать функцию printf
.