【问题标题】:How to print Current Time and Date如何打印当前时间和日期
【发布时间】:2016-04-30 07:41:30
【问题描述】:

我很困惑....我在 C 中打印了__TIME__,然后它打印了 time,然后在 5 秒后我又执行了它。我做了5次。但一直以来,时间都是一样的。时间没有变,甚至没有秒也变。所有时间小时分钟和秒保持不变。那么如何使用 time.h 打印当前时间和日期

【问题讨论】:

  • 请贴出代码。
  • __TIME__ 是一个预处理器宏,它扩展到文件编译的时间。它不会在程序的连续运行之间改变。
  • 是的,就像__LINE__ 等,都是预定义的宏。
  • 需要重新编译运行,而不是重新运行程序。
  • @KeyurShah:是的 - 使用来自time.h的函数。

标签: c macros


【解决方案1】:

__TIME__ 是一个预处理器宏,可扩展到时间at which the file was compiled。它不会在程序的连续运行之间改变。正如您在我发布的文档的链接中看到的那样,它清楚地表明它扩展为“字符串常量”。

如果您想获取当前时间,请查看 time.h 标头。

【讨论】:

  • 谢谢你的回答 Daniel Kamil Kozar 我会试试的
  • 更准确地说:__TIME__ 在源文件的预处理期间被扩展,甚至在之前 编译.
  • @alk:预处理是编译的一部分。
【解决方案2】:

__TIME__
预处理翻译单元的翻译时间:一个字符 "hh:mm:ss" 形式的字符串文字,与由 asctime 函数。如果翻译时间不可用, 应提供实现定义的有效时间。

需要注意的重要一点是,它确实是一个宏,并且替换发生在预处理期间一劳永逸。

所以即使打印次也不会改变

【讨论】:

  • 宏扩展发生在预处理时间,而不是编译阶段。
  • @fluter:预处理是编译的一部分。原来的答案是正确的。 (我会更新它以引用 ISO C 标准中的定义。)
猜你喜欢
  • 1970-01-01
  • 2023-02-23
  • 2012-09-13
  • 2015-02-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多