工具/软件:TI C/C++编译器
您好:
在随附的代码中、结构成员"delay_counter"无法在 BlinkLED 函数中保留其更新的值。 我一直不能弄清楚为什么会这样。 这是编译器错误还是架构限制?
谢谢、
Michael Clress
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
您好:
在随附的代码中、结构成员"delay_counter"无法在 BlinkLED 函数中保留其更新的值。 我一直不能弄清楚为什么会这样。 这是编译器错误还是架构限制?
谢谢、
Michael Clress
布鲁斯:
感谢您的回复。 阵列在 InsertTimerTask 内初始化;插入第一个项目时,它将检查阵列容量。 看到它为0、它将 malloc 和 memset 数组以增大它。 不过,您的注释确实促使我在 FreeTimerMgr()中为数组添加了 free()。
我还更新了 BlinkLEV()(对 InsertTimerTask 的调用)的第27行,以传递数据而不是数据->timermgr。 这是更正确的并且是一个很好的捕获、但对程序执行没有影响、因为 data->timermgr 是 BlinkLEDData 结构的第一个元素。 因此、当它被转换时、转换将指向存储器中的正确位置。 这完全是一个机会,如果我稍后在它之前插入了一些东西,就会导致一个错误。 很好的收获
至于持久性,我指的是一个值的设置,希望在下一次迭代 BlinkLEV()时它保持不变。 即使进行了我刚才提到的更正、我仍然看不到值更新。 如果我使用较旧版本的 TI 编译器和 GCC 进行编译、即使关闭了优化、我也会获得不同的程序行为、这使我的沮丧更加复杂。
这是一种非常奇怪的行为...
我将使用引用的修改附加新项目。
谢谢、
Michael Clress