工具/软件:Code Composer Studio
很抱歉在这里发布 C 语言问题、但它可能对"良好做法"列表有用。
我有一个可简化为以下代码的函数:
void SensorGetValuesAsime(sensorData_t *读取) { sensorData_taverage; memset (平均值、0、sizeof (sensorData_t)); uint32_ti = 0; while (i < validNumber) { averal.accXgValue+= sensorData[i]->msrAccXFilt; averal.accYgValue+= sensorData[i]->msrAccYFilt; averal.accZgValue+= sensorData[i]->msrAccZFilt; i++; } *读取=平均值; }
作为本地结构、我希望编译器自动将其初始化为零、但结果上有零星 NaN。 进一步的阅读告诉我,这不一定是事实,因此我们添加了 memset()行。
另一种可能的语法是使用括号初始化元素、如
sensorData_t average ={0、0、0};
第二个选项看起来更干净、但要求我们"计算"元素的数量、并且如果在结构中添加了某个内容、我们会重新访问函数。
还有其他优雅的方式吗? memset 上是否有任何缺点?
谢谢
布鲁诺