#include <inttypes.h>
uint64_t delta = (some huge number);
char outstring[80];
sprintf(outstring, "Delta of %"PRIu64 " seconds detected. Adjusting RTC\r\n", delta);
这导致 outstring = “检测到 lu 秒的增量。调整 RTC”
很明显,我正在寻找 outstring 中的数字,而不是“lu”。我现在不理解哪一段语法?
我想我正在使用 gcc c11
最佳答案
您的 C 库 printf
似乎不支持 long long
类型。当与 gcc
端口结合使用时,这是 Windows 上旧版 MSVC 库的一个常见缺点。您应该升级到最新版本的 Microsoft Visual Studio 并使用它,或者切换到具有更好的 C 支持的平台,例如 OS/X 或 Linux。
关于c - sprintf 和 uint64_t 未使用 PRIu64 正确格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51689306/