使用typedef struct封装数组后,对该数组进行初始化,特别要注意花括号的数量。
下面例子中,初始化数据使用两层花括号进行封装。最外层的花括号封装的是TangoCoordinateFrameId,内层的花括号封装的是data[TANGO_COORDINATE_FRAME_ID_BYTE_LEN]。
typedef struct TangoCoordinateFrameId {
/// Opaque byte representation of the unique id.
unsigned int data[TANGO_COORDINATE_FRAME_ID_BYTE_LEN];
} TangoCoordinateFrameId;
// 数组封装在结构体中,直接用字面值初始化结构体中的数组
const TangoCoordinateFrameId TANGO_COORDINATE_FRAME_ID_NONE = {
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}};
下面的例子中就能很好地说明内层花括号的作用。由于结构体中有两个数组——data和age,这两个数组是两个成员,所以每个成员都要用一组花括号。因此,内层花括号的作用是为了封装结构体成员。
typedef struct TangoCoordinateFrameId {
/// Opaque byte representation of the unique id.
unsigned int data[TANGO_COORDINATE_FRAME_ID_BYTE_LEN];
unsigned int age[3];
} TangoCoordinateFrameId;
// 数组封装在结构体中,直接用字面值初始化结构体中的数组
const TangoCoordinateFrameId TANGO_COORDINATE_FRAME_ID_NONE = {
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
{20,21,22}
};