gpt4 book ai didi

c++ - 时钟获取时间 : identifier not found in Visual Studio in Windows 10

转载 作者:行者123 更新时间:2023-11-30 18:44:34 24 4
gpt4 key购买 nike

我尝试在 Visual Studio 2015 中的 Clock_gettime 的帮助下运行这个程序来执行函数所花费的时间。我遵循了这里的引用:https://www.cs.rutgers.edu/~pxk/416/notes/c-tutorials/gettime.html

#include <iostream>
#include <stdio.h> /* for printf */
#include <stdint.h> /* for uint64 definition */
#include <stdlib.h> /* for exit() definition */
#include <ctime>
#include<windows.h>
#define _POSIX_C_SOURCE 200809L
#define BILLION 1000000000L

void fun() {

Sleep(3);
}
int main()
{
struct timespec start, end;
int i;
uint64_t diff;

/* measure monotonic time */
clock_gettime(CLOCK_MONOTONIC, &start); /* mark start time */
fun();
clock_gettime(CLOCK_MONOTONIC, &end); /* mark the end time */
diff = BILLION * (end.tv_sec - start.tv_sec) + end.tv_nsec - start.tv_nsec;
printf("elapsed time = %llu nanoseconds\n", (long long unsigned int) diff);

system("pause");
return 0;
}

我尝试在Linux下运行,运行良好。但在Windows中,VS 2015显示错误。

'CLOCK_MONOTONIC' : undeclared identifier 
'clock_gettime': identifier not found

请建议我如何修复此错误或如何在 Visual studio 2015 中查找耗时。谢谢。

最佳答案

函数clock_gettime()由POSIX定义。 Windows 不兼容 POSIX。

这是a link到将clock_gettime()移植到Windows的旧帖子。

对于 Windows,我会使用 std::chrono图书馆。

简单的例子是:

 #include <chrono>
auto start = std::chrono::high_resolution_clock::now();
func();
auto end = std::chrono::high_resolution_clock::now();

std::chrono::duration<float> duration = end - start;
printf("Duration : %f", duration.count());

关于c++ - 时钟获取时间 : identifier not found in Visual Studio in Windows 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57668563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com