mar*_*ack 8 c macros c-preprocessor
出于好奇,我想知道标准__TIME__预处理器宏给出的值是否可以在单个翻译单元中改变?
换句话说,__TIME__在预处理期间确定一次然后固定,还是每次遇到它时重新评估?
如果C标准没有规定,主要实现(gnu,clang,intel,msvc)中是否存在事实上的标准行为?
C没有严格指定"翻译时间"在整个预处理/编译过程中是不变的.
我的经验是不变的.但由于它只是第二个,因此给定的编译需要越过第二个边界才能有所不同.
__TIME__预处理翻译单元的翻译时间:形式的字符串文字,"hh:mm:ss"与asctime函数生成的时间一样 .如果没有翻译时间,则应提供实施定义的有效时间.C11§6.10.8.11对于定义
__DATE__和__TIME__时分别翻译的日期和时间不可用(6.10.8.1).(资料性附录)C11§J.3.111