printf can be a macro already, so #undef it