c++ - SDL_Log 似乎不支持 %g 和 %e 说明符
问题描述
我将 SDL 2.0.12 与 Visual Studio 2013 一起使用,我看到了这个:
SDL_Log("%f", 1.0); // fine
SDL_Log("%g", 1.0); // no luck; prints blank line
我是否需要切换到新/旧版本的 SDL 之类的?
解决方案
SDL_Log
代表SDL_vsnprintf
. 有三种可能:
#if defined(HAVE_LIBC) && defined(__WATCOMC__)
这似乎检查了 Watcom C 编译器。不适合你。
#elif defined(HAVE_VSNPRINTF)
这种情况代表编译器vsnprintf
是否在编译时定义了该符号的实现。VS2015 似乎有 %g 说明符,我假设 VS2013 也是如此。您可以自己简单地检查一下。
#else
我认为你处于这种情况。
这使用 SDL 中的自定义实现。这确实缺乏对 %g 修饰符的支持,但您可以自己添加它(并提交拉取请求)。