我想为我的ispc代码实现一个调试函数,该函数可以将日志记录级别作为参数,然后打印f风格的字符串和参数。
签名应该是这样的:
extern "C" void debug_log(enumDebugLevel debugLevel, char *literalString, ...);
我可以看出ispc不支持"函数的变元数";它既不支持字符串也不支持char数据类型,所以我认为可能性非常有限。
但是,有一个名为print的内置函数可以同时处理字符串文字和变量参数计数。我想知道是否有一种方法可以将我的函数实现为外部函数,即使ispc本身不支持这些功能。
我假设您的应用程序中没有控制台窗口?如果是这种情况,您可以做的一件事就是将stdout
/stderr
重定向到您的日志系统。SO对此进行了大量讨论。
然而,我请求进行更改,允许print()
在Windows上调用OutputDebugStringA()
,但能够提供自定义回调是一个很好的建议。我将把这个建议添加到下面的GitHub问题中。
https://github.com/ispc/ispc/issues/2140
我是英特尔ISPC团队的一员,非常欢迎外界提出建议/问题。不过最好在GitHub上联系我们!