2010-05-01 5 views
7

posso inizializzare float32x4_t simili:Come inizializzare const float32x4x4_t (ARM NEON intrinsic, GCC)?

const float32x4x4_t zero = { 0.0f, 0.0f, 0.0f, 0.0f }; 

Ma questo codice fa un errore tipi incompatibili in inizializzatore:

const float32x4x4_t one = 
{ 
    1.0f, 1.0f, 1.0f, 1.0f, 
    1.0f, 1.0f, 1.0f, 1.0f, 
    1.0f, 1.0f, 1.0f, 1.0f, 
    1.0f, 1.0f, 1.0f, 1.0f, 
}; 

float32x4x4_t è matrice 4x4 costruito come:

typedef struct float32x4x4_t 
{ 
    float32x4_t val[4]; 
} 
float32x4x4_t; 

Come posso inizializzare questa struttura const?

risposta

8
const float32x4x4_t nameOfVariableHere = 
{{ 
    {1.0f, 1.0f, 1.0f, 1.0f}, 
    {1.0f, 1.0f, 1.0f, 1.0f}, 
    {1.0f, 1.0f, 1.0f, 1.0f}, 
    {1.0f, 1.0f, 1.0f, 1.0f} 
}}; 

Il primo livello di parentesi è per la struttura.
Il 2 ° livello è per l'array di float32x4_t.
Il 3o livello è per float32x4_t stesso.

+0

Oh mio Dio! Ho omesso il nome della variabile! Mi dispiace per questo. Ho aggiornato la mia domanda. E in questo modo "errore: tipi incompatibili in fase di inizializzazione", "errore: gruppo di parentesi extra alla fine dell'inizializzatore". Grazie. – Eonil

+0

@Eonil: Siamo spiacenti, ho lasciato la virgola extra alla fine. Prova l'aggiornamento. – kennytm

+0

Grazie, ma rimuovere l'ultima virgola non è efficace. Gli stessi errori – Eonil