关于这个警告有很多问题,但我所尝试的没有一个似乎让警告消失了。
这就是我所拥有的:
typedef struct {
union {
float data[16];
float col_row[4][4];
};
} matrix44;
// ...
matrix44 result = {0};
我试图将结构初始化为零,但是不能让它没有给出错误。这是编译为C11。
我也尝试过其他变种,有些荒谬可笑:
matrix44 result = {{0}};
matrix44 result = { {0}, {0} };
matrix44 result = { {0}, { {0}, {0} } };
但当然他们都会发出警告。
如果我将结构简化为只有一维data
数组,那么我可以使用{{0}}
初始化它而不会发出警告。但是将它减少到二维col_row
数组仍然会发出警告。
有没有正确的方法来避免警告?或者在这种情况下警告是否不正确?
答案 0 :(得分:11)
使用:
matrix44 result = {{{0}}};
以避免使用gcc
发出警告。第一对{}
用于结构,第二对用于联合,第三对用于数组。