我已经发现了另一个问题,即Windows/MingW没有为过时的usleep()提供nanosleep()和setitimer()替代方案.但我的目标是修复cppcheck给我的所有警告,包括usleep()样式警告.
那么,是否有一种解决方法可以在不使用cygwin或安装大量新依赖项/库的情况下以某种方式避免使用Windows上的usleep()?谢谢.
我移植我的应用程序,以windows从unix,我已经碰壁.在我的应用程序中,我需要在几微秒内找到时间(整个应用程序在很大程度上依赖于它,因为它是一个高精度的应用程序).
以前我使用的是timespec结构,但是Windows不包含这样的东西.该命令GetTickCount不够用,因为它以毫秒为单位返回时间.我也在考虑QueryPerformanceFrequency.
有人会碰巧知道尽可能相同的东西timespec吗?
在未来,我甚至可能需要纳秒,我在Windows中搜索的任何内容都不支持.
我编写了两个功能相同的函数,但是使用了不同的算法。我使用time.h中的clock()比较执行时间,但结果不一致。
我试图更改函数的执行顺序,但似乎第一个要执行的函数将始终具有更长的运行时间
#include <stdio.h>
#include <time.h>
long exponent(int a, int b);
long exponentFast(int a, int b);
int main(void)
{
int base;
int power;
clock_t begin;
clock_t end;
double time_spent;
base = 2;
power = 25;
begin = clock();
long result1 = exponentFast(base, power);
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("Result1: %li, Time: %.9f\n", result1, time_spent);
begin = clock();
long result2 = exponent(base, power);
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("Result2: %li, Time: …Run Code Online (Sandbox Code Playgroud)