【发布时间】:2011-03-13 05:28:05
【问题描述】:
我正在使用下面的程序来打印当前时间
int main()
{
printf("%s",__TIME__);
return 0;
}
它只适用于第一次。如果我在某个时间后运行它,它会再次给出相同的旧时间。
为什么我需要刷新时间?
【问题讨论】:
我正在使用下面的程序来打印当前时间
int main()
{
printf("%s",__TIME__);
return 0;
}
它只适用于第一次。如果我在某个时间后运行它,它会再次给出相同的旧时间。
为什么我需要刷新时间?
【问题讨论】:
__TIME__ 是一个standard predefined macro,它扩展为一个字符串常量,描述运行预处理器的时间。
它在编译之前被预处理器替换。所以它不会随着不同的运行而改变。但是如果你重新编译你的程序,你会看到变化。
要获取当天的当前时间,您可以使用 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 库的链接。
【讨论】: