SDL_Log 似乎不支持 %g 和 %e 说明符

SDL_Log doesn't seem to support %g and %e specifiers

我在 Visual Studio 2013 中使用 SDL 2.0.12,我看到了这个:

SDL_Log("%f", 1.0); // fine
SDL_Log("%g", 1.0); // no luck; prints blank line

我需要切换到 newer/older 版本的 SDL 还是什么?

SDL_Log 委托给 SDL_vsnprintf。存在三种可能:

#if defined(HAVE_LIBC) && defined(__WATCOMC__)

这似乎是在检查 Watcom C 编译器。不适合你。

#elif defined(HAVE_VSNPRINTF)

如果该符号是在编译时定义的,则这种情况委托给您的编译器实现 vsnprintf。 VS2015 似乎有 %g 说明符,我假设 VS2013 也是如此。你可以自己简单地检查一下。

#else

我觉得你是这种情况。
这使用 SDL 中的自定义实现。这确实 lacks support for the %g modifier,但您可以自己添加(并提交拉取请求)。