Часто возникают ситуации, когда я хочу напечатать с printf
значение целочисленного типа размера, определенного для реализации (например, ino_t
или time_t
). Прямо сейчас, я использую такой шаблон для этого:
#include <inttypes.h>
ino_t ino; /* variable of unknown size */
printf("%" PRIuMAX, (uintmax_t)ino);
Этот подход работает до сих пор, но он имеет несколько недостатков:
- Я должен знать, подписан ли тип, который я пытаюсь распечатать, или без знака.
- Мне нужно использовать тип, который может увеличить мой код.
Есть ли лучшая стратегия?