繁体   English   中英

如何编写基于当前日期分支的 C #if 指令

[英]How can I write a C #if directive that branches based on the current date

我想要的是这样的功能:

#if TODAY<OCTOBER_31_2017
#define OK 0
#elif TODAY==OCTOBER_31_2017     
#define OK 1
#else     
#define OK 2
#endif

所以我希望“OK”具有相关的编译时值,具体取决于今天的日期。

有什么办法吗?

假设接受-D选项的编译器和调用它的 POSIX shell/环境,您可以执行以下操作:

cc -DOCTOBER_31_2017=$(date -d 'Oct 31 2017' +%s) \
   -DTODAY=$(date -d now +%s) \
    yourfile.c

并且您的预处理器代码应该可以工作。

date +%s日期打印为 UNIX 时间戳(自 1970-01-01 00:00:00 UTC 以来的秒数),这应该允许您将它们与 C 预处理器的整数算法进行比较。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM