2010-05-01 27 views
7

Je peux initialiser float32x4_t comme ceci:Comment initialiser const float32x4x4_t (ARM NEON intrinsèque, GCC)?

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

Mais ce code fait une erreur types incompatibles dans initialiseur:

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 est matrice 4x4 construit comme:

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

Comment puis-je initialiser cette structure const?

Répondre

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} 
}}; 

Le 1er niveau de parenthèse est pour la structure. Le niveau 2 est pour le tableau float32x4_t. Le niveau 3 est pour float32x4_t lui-même.

+0

Oh mon Dieu! J'ai omis le nom de la variable! Désolé pour ça. J'ai mis à jour ma question. Et de cette façon fait "erreur: types incompatibles dans l'initialisation", "erreur: groupe accolade supplémentaire à la fin de l'initialiseur". Merci. – Eonil

+0

@Eonil: Désolé, j'ai laissé la virgule supplémentaire à la fin. Essayez la mise à jour. – kennytm

+0

Merci, mais supprimer la dernière virgule n'est pas efficace. Mêmes erreurs – Eonil