繁体   English   中英

简单的c程序不会产生所需的输出

[英]simple c program does not produce required output

我使用以下程序打印当前时间

int main() 
{
  printf("%s",__TIME__);
  return 0;
}

它只适用于第一次。 如果我在一段时间后运行它再次给出相同的旧时间。

为什么我需要刷新时间呢?

__TIME__是一个标准的预定义宏 ,它扩展为一个字符串常量,用于描述预处理器的运行时间

它在编译之前被预处理器替换。 所以不会随着不同的运行而改变。 但是如果你重新编译你的程序,你会看到变化。

要获取当天的当前时间,您可以使用timelocaltimeasctime函数:

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库的链接。

http://www.cplusplus.com/reference/clibrary/ctime/ctime/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM