clock_gettime
不再在MacOS Sierra工作了。非常肯定,在Xcode 8发布之前,我的编译是正确的。我真的有点纠结在该怎么做才能让它正确编译。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(){
struct timespec time1, time2;
clock_gettime(CLOCK_MONOTONIC,&time1);
//Some code I am trying to work out performance of...
clock_gettime(CLOCK_MONOTONIC,&time2);
printf("Time Taken: %ld",time2.tv_nsec - time1.tv_nsec);
}
这样的代码根本无法编译。有人告诉我塞拉时间图书馆已经改变了。如果没有定义CLOCK_MONOTONIC
,我就会得到一个编译器错误,对于clock_gettime
的隐式声明也会有一个警告,如果我将CLOCK_MONOTONIC
定义为随机的东西,这就变成了一个错误,因为它只是在链接阶段出现了错误。
有谁知道修复或解决方法来获得代码编译和执行吗?
发布于 2017-01-06 16:14:32
我不认为CLOCK_MONOTONIC
在最近几次出现过。
我相信您需要的可能是mach_absolute_time()
加上一个转换,如文档化的这里;这似乎是单调的和绝对的(您可能知道这是两件不同的事情)。
其他有用的提示可在以下相关问题(但我认为不是重复问题)中找到:
https://stackoverflow.com/questions/41509505
复制相似问题