Jak zawinąć printf () w funkcję lub makro?

Brzmi to trochę jak pytanie z wywiadu, ale w rzeczywistości jest to problem praktyczny.

Pracuję z platformą wbudowaną i mam dostępne tylko odpowiedniki tych funkcji:

printf ()snprintf ()

Co więcej, implementacja printf () i podpis mogą się zmienić w najbliższej przyszłości, więc wywołania do niej muszą znajdować się w oddzielnym module, aby można było później migrować.

Biorąc to pod uwagę, czy mogę zawijać rejestrowanie wywołań w jakiejś funkcji lub makrze? Celem jest, aby mój kod źródłowy zadzwoniłTHAT_MACRO("Number of bunnies: %d", numBunnies); w tysiącach miejsc, ale połączenia z powyższymi funkcjami są widoczne tylko w jednym miejscu.

Kompilator: arm-gcc -std = c99

questionAnswers(6)

yourAnswerToTheQuestion