我有一个遗留 C 函数,它使用如下结构定义
struct{
float _schedulerRate;
}sched_;
#define sched_1 sched_;
// bla bla bla
myFunc(bla bla bla) {
// Lots of bla bla bla
someVar = some_complicated_equation/sched_1._schedulerRate;
// More bla bla bla
}
这个函数甚至不接受任何以某种方式分配给sched_1._schedulerRate
元素的参数。我也知道我不能定义结构使用extern
,因为这个链接确实支持结构定义。
问题是当我对它进行单元测试时,我必须为此设置一个值sched_1._scheduerRate
。我怎样才能做到这一点?这是一个成功运行的遗留代码,但我正在尝试将它的一个模块集成到一个侧面项目中。
我在 C/C++ 编程方面只有 1.5 年的经验,这可能就是我不知道一些魔术的原因。但即使从新手用户的 PoV 来看,这对我来说似乎也几乎不可能做到。但是,它是遗留代码并且也可以工作!我怎么不知道。