[英]simple c program does not produce required output
我使用以下程序打印当前时间
int main()
{
printf("%s",__TIME__);
return 0;
}
它只适用于第一次。 如果我在一段时间后运行它再次给出相同的旧时间。
为什么我需要刷新时间呢?
__TIME__
是一个标准的预定义宏 ,它扩展为一个字符串常量,用于描述预处理器的运行时间 。
它在编译之前被预处理器替换。 所以不会随着不同的运行而改变。 但是如果你重新编译你的程序,你会看到变化。
要获取当天的当前时间,您可以使用time
, localtime
和asctime
函数:
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "Current local time and date: %s", asctime (timeinfo) );
__TIME__
是由编译器设置的宏。 由于它是在编译时修复的,因此稍后运行程序不会更改输出。 您可以调用gettimeofday()
或time()
甚至其他函数来获取运行时的时间/日期。 ctime()
及其相关函数可以为您生成更多有用的字符串。
大家对__TIME__
是正确的。 这是关于ctime库的链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.