C++ high_resolution_clock 奇怪的输出

C++ high_resolution_clock weird output

我目前正在尝试计算 cpp 中循环的增量时间。目前我使用这个代码

#include <chrono>
int main()
{

typedef std::chrono::high_resolution_clock Clock;
typedef std::chrono::duration<float> fsec;

auto lastTime = Clock::now();
auto currentTime = Clock::now();
fsec passedTime = currentTime - lastTime;
while (true)
{
    lastTime = currentTime;
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    printf("");
    currentTime = Clock::now();
    passedTime = currentTime - lastTime;
    printf("%i\n", passedTime.count());
}

return 0;
}

这不是我在程序中使用的实际代码,但增量时间计算和输出与此示例中的完全相同。

它过去工作正常,当 GLFW 锁定到 60 ticks/s 时它输出大约 ~0.0167 的数字,并且输出的数字大约为 6k ticks/s。

我的问题是我将主函数中的所有内容都移到了一个方法中,现在得到 this result

好像我错误地更改了某些内容,但我无法弄清楚我更改了什么。

你的printf是错误的,数据是float,但是printf格式是int。