我想下面的工會陣列在聲明初始化數組工會:初始化在聲明
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