多%lu以格式化ULONG64

时间:2015-11-17 07:18:25

标签: c++

enter image description here

如图所示,nLeftHour0nLeftMinute30nLeftSecond3,结果为{{ 1}}。

我知道它应该是00:00:30而不是%02llu,但为什么它是%02lu ????

1 个答案:

答案 0 :(得分:0)

格式说明符和参数不匹配会导致未定义的行为,因此任何都可能发生。

在您的特定情况下可能发生的事情是,格式说明符在堆栈中查找三个无符号长整数,但是您已经推送了三个无符号长整型变量,从而导致对齐问题。

但结果并不重要 结果是什么,最重要的是你不应该做你正在做的事情。

可以找到更多详细信息here,尽管语言不同,但现在我认为它仍然是重复的。所以我必须投票以投票结束,对不起。但我会在这里留下文字(作为社区),所以你明白为什么。