我使用以下程序打印当前时间
int main()
{
printf("%s",__TIME__);
return 0;
}
它仅适用于第一次。如果我在一段时间后运行它再次给出相同的旧时间。
为什么我需要更新时间?
答案 0 :(得分:14)
__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) );
答案 1 :(得分:9)
__TIME__
是由编译器设置的宏。由于它是在编译时修复的,因此稍后运行程序不会更改输出。您可以调用gettimeofday()
或time()
或甚至其他一些函数来获取运行时的时间/日期。 ctime()
及其相关函数可以为您生成更多有用的字符串。
答案 2 :(得分:0)
每个人对__TIME__
的看法都是正确的。这是关于ctime库的链接。