我想下面的工会阵列在声明初始化数组工会:初始化在声明
typedef union { __m128d m; float f[4]; } mat;
mat m[2] = { {{30467.14153,5910.1427,15846.23837,7271.22705},
{30467.14153,5910.1427,15846.23837,7271.22705}}};
但I'getting以下错误:
matrix.c: In function ‘main’:
matrix.c:21: error: incompatible types in initialization
matrix.c:21: warning: excess elements in union initializer
matrix.c:21: warning: (near initialization for ‘m[0]’)
matrix.c:21: warning: excess elements in union initializer
matrix.c:21: warning: (near initialization for ‘m[0]’)
matrix.c:21: warning: excess elements in union initializer
matrix.c:21: warning: (near initialization for ‘m[0]’)
matrix.c:21: error: incompatible types in initialization
matrix.c:21: warning: excess elements in union initializer
matrix.c:21: warning: (near initialization for ‘m[1]’)
matrix.c:21: warning: excess elements in union initializer
matrix.c:21: warning: (near initialization for ‘m[1]’)
matrix.c:21: warning: excess elements in union initializer
matrix.c:21: warning: (near initialization for ‘m[1]’)
在整个'.f = {...}'表达式中,还需要有一组大括号。 – cdhowie 2012-07-19 10:07:43
@cdhowie谢谢,错字。固定。 – unwind 2012-07-19 10:09:15
更清洁的解决方案是将浮动申报移到第一个位置。这使得不必要的使用“.f”,它编译没有错误。谢谢。 – albertgumi 2012-07-19 10:31:01