什么原始数据类型是time_t?

46 c printf types time-t

我不知道数据类型time_t.它是浮动双重还是其他什么?因为如果我想显示它,我需要与之对应的标签printf.我可以从那里处理其余部分进行显示,time_t但我需要知道与之对应的数据类型.

dan*_*n04 33

它是特定于平台的.但是你可以将它转换为已知类型.

printf("%lld\n", (long long) time(NULL));
Run Code Online (Sandbox Code Playgroud)

  • 假设平台支持(很长时间).正是在不需要的时候,你需要知道time_t只有32位. (5认同)
  • 它还假设`long long`足够大以保持该值.至于标准说`time_t`可以是自第一个Monty Python剧集播出以来的yoctoseconds数(这将使它大于64位). (2认同)

Mat*_*hen 28

不幸的是,它不是完全可移植的.它通常是整数,但它可以是任何"整数或实数浮动类型".


小智 15

你可以使用这个功能difftime.它返回两个给定time_t值之间的差值,输出值为double(参见difftime文档).

time_t actual_time;
double actual_time_sec;
actual_time = time(0);
actual_time_sec = difftime(actual_time,0); 
printf("%g",actual_time_sec);
Run Code Online (Sandbox Code Playgroud)