gpt4 book ai didi

gcc - 如果在特定日期之后编译,则预处理器宏将删除代码

转载 作者:行者123 更新时间:2023-12-02 00:19:14 25 4
gpt4 key购买 nike

如果在特定日期之后编译,我希望不包含三行代码。原因是它们提供向后兼容性。为了支持客户端和嵌入之间的交错发布,它现在就必须存在。

一旦下一个软件版本发布,这种支持将被取消,以迫使客户升级嵌入式软件。由于距离这还有几个月的时间,因此这些台词有被遗忘的风险。

所以理想情况下我想要一个

#if __DATE__ > MyDate
code here
#endif

或类似的东西。有什么办法可以做到这一点吗?

*代码是用GCC编译的

最佳答案

该解决方案专门针对 Windows 平台,是我在生产中使用的。

我利用环境变量 %DATE%,并在用于启动 IDE 的批处理文件中,我有 VA_CURRENT_DATE=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2 %(针对我的特定区域设置转换为 ISO8601 日期)。

然后在我的项目的预处理器定义中,我将 VA_BUILD_DATE 定义为 VA_CURRENT_DATE

然后我有一些代码,例如:

long day = VA_BUILD_DATE;
long year = day / 10000;
day -= year * 10000;
long month = day / 100;
day -= month * 100;

关于gcc - 如果在特定日期之后编译,则预处理器宏将删除代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com