sprintf和uint64_t使用PRIu64格式不正确

时间:2018-08-04 20:24:51

标签: c format printf

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

这导致外串= “检测到的lu秒增量。调整RTC”

很明显,我在寻找字符串而不是“ lu”中的数字。我现在不了解什么语法?

我正在使用我认为的gcc c11

1 个答案:

答案 0 :(得分:1)

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