如何获取 __TIME__ 的 UTC 偏移量?

vy3*_*y32 6 time c99

我们用来__TIME__将编译时间嵌入到二进制文件中。不幸的是,没有 UTC 偏移的时间是没有意义的。我没有看到一种明显的方法来获取编译器正在运行的时区。我想我可以从配置脚本中获取它。但还有更好的办法吗?

如果我从配置脚本中执行此操作,我将需要以某种方式将其放入 .h 或 .c 文件中,并在该文件不存在时执行一些智能操作。

asa*_*ami 2

您可以使用编译器标志从外部传递它。大多数编译器提供'-D'标志来#define外部定义宏。假设您将 UTC 信息放入环境变量中。将该环境变量作为-D标志传递

set $myUTC="-7"
gcc -c mysource.cpp -DUTC=$myUTC
Run Code Online (Sandbox Code Playgroud)

在您mysource.cpp 使用宏时UTC

printf("Compiled at %d Offset %d", __TIME__, UTC);
Run Code Online (Sandbox Code Playgroud)