如何在C中初始化结构数组?

Asa*_*sad 4 c

场景是我有嵌套的结构定义,我有一个10个这样的结构的数组.我想要的是用零初始化父结构和子结构的每个元素.代码如下:

struct PressureValues
{

   float SetPressure;
   float ReadPressure;

};

struct CalibrationPoints
{

   float SetTemperature;
   struct PressureValues PressurePoints[10];

};

extern volatile struct  CalibrationPoints code IntakeCalibrationPoints[10];

extern volatile struct  CalibrationPoints code DischargeCalibrationPoints[10];
Run Code Online (Sandbox Code Playgroud)

我知道使用循环零初始化每个结构元素的冗长方法,但我正在寻找一种将所有元素初始化为零的简短方法.或者什么是结构数组的默认初始化值(仅包含浮点数),是零还是任意随机值?

Pau*_*l R 11

volatile struct CalibrationPoints IntakeCalibrationPoints[10] = { { 0 } };
volatile struct CalibrationPoints DischargeCalibrationPoints[10] = { { 0 } };
Run Code Online (Sandbox Code Playgroud)

这会将所有元素初始化为零.

这样做的原因是,当您明确初始化数据结构的至少一个元素时,默认情况下,所有未指定初始化器的剩余元素将初始化为零.

  • +1,"{0}"技巧是恕我直言最好,最傻瓜的方式. (3认同)