определить стиль функции printf внешней функции в ispc для ведения журнала

Я хочу реализовать функцию отладки для моего кода ispc, которая может принимать уровень ведения журнала в качестве аргумента, а затем строку и аргументы в стиле printf.

Подпись будет примерно такой:

extern "C" void debug_log(enumDebugLevel debugLevel, char *literalString, ...);

Я вижу, что ispc не поддерживает «переменное количество аргументов для функций», а также не поддерживает строки или тип данных char, поэтому я думаю, что шансы довольно ограничены.

Однако существует встроенная функция print, которая работает как со строковыми литералами, так и с переменным числом аргументов. Мне интересно, есть ли способ реализовать мою функцию как внешнюю функцию, даже если сам ispc не поддерживает эти функции.

1 ответ

Я предполагаю, что у вас нет окна консоли в вашем приложении? Если это так, вы можете перенаправитьstdout/stderrк вашей системе регистрации. Обсуждений SO по этому поводу много.

Однако я запросил изменение, позволяющееprint()перезвонитьOutputDebugStringA()в Windows, но возможность предоставления пользовательского обратного вызова — отличное предложение. Я добавлю это предложение к следующей проблеме GitHub.

https://github.com/ispc/ispc/issues/2140

Я являюсь частью команды ISPC в Intel, и я очень приветствую предложения/вопросы со стороны. Однако лучше всего связаться с нами на GitHub!

Другие вопросы по тегам