gpt4 book ai didi

c++ - 如何在arduino库头中覆盖#define

转载 作者:搜寻专家 更新时间:2023-10-31 02:12:52 24 4
gpt4 key购买 nike

我在项目中使用 RunningMedian Arduino 库。

在库头文件中,MEDIAN_MAX_SIZE 预设为 19。

     #define MEDIAN_MAX_SIZE     19  // adjust if needed

我需要在不更改库文件的情况下覆盖 header 以使 MEDIAN_MAX_SIZE 变为 30,以便将来仍可进行更新。

我的声明:

     #define RunningMedian::MEDIAN_MAX_SIZE 30     // library over ride ??
#define ACTIVE_MAX 30 // max active buffer size
RunningMedian ActiveSamples( ACTIVE_MAX ); // FIFO readings

This will not compile.

库代码不会创建大于 MEDIAN_MAX_SIZE 的缓冲区。

如何在不更改 RunningMedian.h 文件的情况下将 19 替换为 30,并且仍然更改其类中的 MEDIAN_MAX_SIZE 大小?

最佳答案

您可以#undef MEDIAN_MAX_SIZE 并重新定义它,如下所示:

#ifdef MEDIAN_MAX_SIZE //if the macro MEDIAN_MAX_SIZE is defined 
#undef MEDIAN_MAX_SIZE //un-define it
#define MEDIAN_MAX_SIZE 30//redefine it with the new value
#endif

您可能希望在使用调整后的值后将其重新定义为其原始值,以防万一其他东西依赖于该值是原始值。

关于c++ - 如何在arduino库头中覆盖#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42151118/

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