工具/软件: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 上是否有任何缺点?
谢谢
布鲁诺