определить стиль функции 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!