c-sprintf和uint64_t未使用PRIu64正确格式化


#include <inttypes.h>
uint64_t delta = (some huge number);
char outstring[80];
sprintf(outstring, "Delta of %"PRIu64 " seconds detected. Adjusting RTCrn", delta);

这导致outstring="检测到lu秒的增量。正在调整RTC">

很明显,我要的是outstring中的数字,而不是"lu"。我现在不懂什么语法?

我用的是gcc c11我想

您的C库printf似乎不支持long long类型。当与gcc端口组合使用时,这是Windows上较旧的MSVC库的一个常见缺点。您应该升级到最新版本的Microsoft Visual Studio并使用它,或者切换到具有更好C支持的平台,如OS/X或Linux。

最新更新