Comment envelopper printf() dans une fonction ou une macro?

Cela sonne un peu comme une question d'entrevue,mais est en fait un problème pratique.

Je suis en train de travailler avec une plate-forme intégrée, et disponible seulement les équivalents de ces fonctions:

  • printf()
  • snprintf()

En outre, le printf() mise en œuvre (et la signature) est susceptible de changer dans un avenir proche, de sorte que les appels doivent résider dans un module séparé, afin d'être facile à migrer plus tard.

Compte tenu de ces, puis-je envelopper la journalisation des appels à une fonction ou une macro? Le but est que mon code source des appels THAT_MACRO("Number of bunnies: %d", numBunnies); en mille endroits, mais les appels à des fonctions ci-dessus sont vus seulement dans un seul endroit.

Compilateur: arm-gcc-std=c99

  • Est-ce que votre prise en charge du compilateur variadic des macros?
  • Quel compilateur restrictions sont en place? Si cela doit fonctionner sur une version de C avant de C99, il sera difficile à accomplir de façon portable comme une macro.
  • J'ai pensé WHYT? commentaires a été bloqué ces jours-ci?
InformationsquelleAutor Vorac | 2013-12-17