Я хотел написать функцию печати журнала отладки для моего конечного автомата, которая печатает текущее состояние, время в миллисекундах и затем мое сообщение.Тем не менее, я получаю случайные результаты.Вот что я сделал:
#define DEBUG_PRINT(tag, format, ...) printf("[%10s] %7d: " format "\n", tag, millis(), ##__VA_ARGS__)
Когда я бегу:
DEBUG_PRINT("SETUP", "%d %d %d %d", 1, 2, 3, 4);
Я ожидаю получить: [ SETUP] 0: 1 2 3 4
Но я получаю: [ SETUP] 0: 0 1 2 3
При добавлении% d получим «4», но я все еще получаю ложное 0.
Мой предыдущий макрос журнала дебюта: DEBUG_PRINT1("%d %d %d %d", 1, 2, 3, 4);
печатает ожидаемый 1 2 3 4
.
Можете ли вы помочь мне избавиться от этого лишнего 0?