История изменений
Исправление X512, (текущая версия) :
Неужели придется самому такую либу писать?
Не видел существующих библиотек с такой функциональностью. Интерфейс, предложенный в начальном сообщении, можно реализовать следующим образом:
enum {
END,
STR,
UINT16,
};
void my_print(int op, ...)
{
va_list args;
va_start(args, op);
for (; op != END; op = va_arg(args, int)) {
switch (op) {
case STR:
printf("%s", va_arg(args, const char*));
break;
case UINT16:
printf("%u", va_arg(args, uint16_t));
break;
default:
abort();
}
}
va_end(args);
}
Исходная версия X512, :
Неужели придется самому такую либу писать?
Не видел существующих библиотек с такой функциональностью. Интерфейс, предложенным в начальном сообщении можно реализовать следующим образом:
enum {
END,
STR,
UINT16,
};
void my_print(int op, ...)
{
va_list args;
va_start(args, op);
for (; op != END; op = va_arg(args, int)) {
switch (op) {
case STR:
printf("%s", va_arg(args, const char*));
break;
case UINT16:
printf("%u", va_arg(args, uint16_t));
break;
default:
abort();
}
}
va_end(args);
}