Tag: time.h

关于time.h中的clock(),time()和difftime()的问题?

int fib(int n,int a,int b){ if (n==2){ return a+b; } return fib(n-1,b,a+b); } int main() { time_t begin,end; begin = clock(); fib(10000,0,1); end = clock(); printf(“%f”,difftime(end,begin)); } int main() { time_t begin,end; time(&begin); fib(10000,0,1); time(&end); printf(“%f”,(double)(end-begin)/CLOCKS_PER_SEC); } 1)第一个问题为什么我的第一个主要打印给我打印时间288.000000 ,我假设这是288毫秒,但在文档中它应该在几秒钟内给我结果。顺便说一下,我在Mac上。 2)第二个问题为什么第二个主要问题。 为什么打印输出时间为0.000000 。 我明白time()给了我一个time_t结构,我把它放在begin和end time_t结构中然后我发现差异在几秒钟内,似乎不起作用。

time.h和linux / time.h之间的声明冲突阻止我使用CLOCK_TAI

我想用 #include clock_gettime(CLOCK_TAI, &…); 但不幸的是CLOCK_TAI没有在库存time.h头文件中定义(至少在openSUSE 13.2中)。 但是它在linux / time.h中定义,实际上是由操作系统支持的。 但是如果我包含后一个标题,它会引发一堆声明冲突 – 与time.h和bits / types.h相比 。 仅包括linux / time.h没有帮助,因为time.h和/或bits / types.h将被unistd.h或stdlib.h隐含地包含在公共头文件中。 所以我尝试手动解决冲突。 特别是,第一个编译器错误消息是关于timespec重新声明,所以我在我的代码中写道: #include #if defined(__timespec_defined) && !defined(_STRUCT_TIMESPEC) #define _STRUCT_TIMESPEC #endif #include 它起作用,但不是没有与itimerspec重新声明的另一个冲突,它在两个标题中都是无条件宣布的,并没有与任何包含守卫的定义结束。 所以我决定完全禁止隐含的time.h包含: #include #ifndef _TIME_H #define _TIME_H #endif 这继续与编译器抱怨时间重新声明。 所以我也禁止了隐含的bits / types.h包含: #include #ifndef _TIME_H #define _TIME_H #endif #ifndef _BITS_TYPES_H #define _BITS_TYPES_H #endif 好吧,但这也删除了重要的基本声明,其中像size_t这样的常见类型是基于的。 […]

strptime给出“隐含声明”和“未定义引用”

所以,当我使用strptime函数strptime我得到一个警告: warning: implicit declaration of function ‘strptime’ 然后是错误: undefined reference to ‘strptime’ 是的,我已经包含了time.h 这是我使用它的一个小示例代码。 #include void my_function() { char buf* = “2016-02-05 12:45:10”; struct tm time*; … strptime(buf, “%F %T”, &time); … } 我知道time.h正在工作,因为在同一个.c文件中,我正在使用strftime , time_t和来自time.h ‘struct tm而没有问题。 我知道这很strptime ,因为当我评论这行代码时,它编译没有任何问题。

在OS X上打破time.h clock()?

我疯了吗? 我在x86_64上运行它。 #include #include #include int main(int argc, char *argv[]) { printf(“Clock: %f\n”, clock() / (double)CLOCKS_PER_SEC); sleep(1); printf(“Clock: %f\n”, clock() / (double)CLOCKS_PER_SEC); sleep(1); printf(“Clock: %f\n”, clock() / (double)CLOCKS_PER_SEC); return 0; } 这打印 时钟:0.002880 时钟:0.002968 时钟:0.003019 它显然在sleep(1)线等待一秒钟,但输出显然是错误的。 如果这不起作用,是否有便携式C替代品?

在C中循环获取代码的特定部分的时间

问题描述 下面我有一个程序正在执行两个简单的加法和乘法运算。 然后,我将这两个简单操作的总和存储在两个相应的变量中,称为total1和total2。 在计算方面,total2将花费更多时间来完全执行。 我实现代码的方式,我目前正在计算两个数学运算的整个模拟。 题 是否可以单独计算total1和total 2的最终结果? 我问的是,我希望以单独的方式获得total1和total2的具体时间。 任务目的 我完全清楚长期在内存方面的代价很高,并不是最有效的内存保存方式。 此代码和问题的唯一目的是计时而不是代码优化。 C代码 #include #include int main() { long long total1 = 0, total2 = 0, i = 0; double simulation_time = 0; clock_t Start = clock(); do { total1 += i + i; total2 += i * i * i * i; i++; } […]

c / c ++微秒时间戳

我使用这段代码在c / c ++中以微秒为单位获取时间戳。 但它看起来不像微秒。 我也不知道是否有任何方式来格式化它。 timeval curTime; gettimeofday(&curTime, NULL); int milli = curTime.tv_usec / 1000; unsigned long micro = curTime.tv_usec*(uint64_t)1000000+curTime.tv_usec; char buffer [80]; //localtime is not thread safe strftime(buffer, 80, “%Y-%m-%d %H:%M:%S”, localtime(&curTime.tv_sec)); char currentTime[84] = “”; char currentTime2[80] = “”; sprintf(currentTime, “%s:%3d”, buffer, milli); sprintf(currentTime2, “%s:%Lu”, buffer, micro); printf(“time %s, hptime %s\n”, currentTime, […]

如何在C编程中获取当前时间(以毫秒为单位)

可能重复: 如何使用ANSI C测量时间(以毫秒为单位)? 如何以毫秒级分辨率获得Windows系统时间? 我们想要计算玩家完成游戏所花费的时间。 但是对于time.h,我们只能在几秒钟内计算出来。 但这并不准确。 是否有可能以毫秒为单位获得时间? 什么是%? 打印到?

clock_t,time_t和struct tm有什么区别?

clock_t,time_t和struct tm有什么区别? struct tm看起来像这样: struct tm{ int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; 但是clock_t和time_t怎么样?

如何在C中午夜以来获得毫秒?

time.h中的时间函数给出了自纪元以来的毫秒数。

常量未由编译器加载

我开始学习POSIX计时器,所以我开始做一些练习,但我立即遇到了编译器的一些问题。 在编译这段代码时,我收到一些关于像CLOCK_MONOTONIC这样的宏的奇怪消息。 这些在各种库中定义,如time.h等,但编译器给出了错误,好像它们没有定义。 这很奇怪,因为我使用的是Fedora 16,而我的一些Ubuntu朋友得到的编译错误比我少:-O 我正在使用gcc -O0 -g3 -Wall -c -fmessage-length=0 -std=c99 -lrt 我得到的错误: struct sigevent sigeventStruct 给出 : storage size of ‘sigeventStruct’ isn’t known unused variable ‘sigeventStruct’ [-Wunused-variable] Type ‘sigevent’ could not be resolved unknown type name ‘sigevent’ sigeventStruct.sigev_notify = SIGEV_SIGNAL 给出 : ‘SIGEV_SIGNAL’ undeclared (first use in this function) request for member ‘sigev_notify’ […]