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