ANSI C:__DATE__和__TIME__字符串大小的标准定义?

时间:2014-01-04 17:05:06

标签: c ansi c-preprocessor

ANSI C中__DATE__和__TIME__字符串的大小是否有标准定义?

这个问题背后的动机是:

  • 我有两个应用程序在两个不同的CPU上运行。

  • 在运行时,app#1从app#2接收日期和时间(作为版本信息的一部分)。

  • 当然,app#2从预处理器__DATE__和__TIME__定义中获取它们。

所以我想知道我是否可以在app#1中静态分配一个数组,我可以在其中复制从app#2收到的信息。

由于

2 个答案:

答案 0 :(得分:2)

__DATE__

  

源文件的翻译日期(字符串   字形“Mmm dd yyyy”,其中的月份名称   与asctime函数生成的相同,并且   如果值较小,则dd的第一个字符是空格字符   比10)。如果没有翻译日期,   应提供实施定义的有效日期。

__TIME__

  

源文件的翻译时间(字符串   形式为“hh:mm:ss”的字形,如同生成的时间   asctime功能)。如果没有翻译时间,   应提供实施定义的有效时间。

答案 1 :(得分:2)

  

ISO / IEC 9899:2011,§6.10.8.1强制性宏

     

__DATE__预处理翻译单元的翻译日期:一个字符   字符串文字的形式“Mmm dd yyyy”,其中的名称   月份与asctime函数生成的月份相同   如果值小于10,则dd的第一个字符是空格字符   翻译日期不可用,是实施定义的有效日期   应提供。

     

__TIME__预处理翻译单元的翻译时间:一个字符   形式为“hh:mm:ss”的字符串文字,如同生成的时间   asctime功能。如果没有翻译时间,   应提供实施定义的有效时间。

因此非常直截了当。