我在代码中使用;
const char compileDate[] = {__DATE__};
const char compileTime[] = {__TIME__};
但我只能在运行程序时看到这些值。编译后是否可以看到日期和时间值?我想做这样的东西:
gcc main.c
date&time: "29 Feb 2018 16:32:55"
a.out created
当然代码中和终端输出中的日期和时间必须相同。
您无法让编译器执行此操作,但您可以使用外部脚本来执行此操作,定义您自己的宏来代替
__TIME__
和 __DATE__
例如,在 UNIX shell 中:
date '+%b %e %Y %I:%M:%S' >xxx
cat xxx xxx | sed -n -e '1s/^\(...........\).*/#define MY_DATE "\1"/p' -e '2s/.*\(........\)$/#define MY_TIME "\1"/p' > xxx.h
cat xxx
将打印日期
Oct 27 2023 09:37:48
,并创建一个头文件,xxx.h,其中包含
#define MY_DATE "Oct 27 2023"
#define MY_TIME "09:37:48"
然后您的代码就可以使用它。