Ce code vient de l'encodeur x264.
Mon compilateur ne comprend pas cette ligne:
Code :
#define DECLARE_ALIGNED( type, var, n ) type var __attribute__((aligned(n)))
et c'est le sens de l'instruction là que je cherche:
type var __attribute__((aligned(n)))DECLARE_ALIGNED( int, residual_ac[15], 16 );
DECLARE_ALIGNED( int, residual_ac[15], 16 );
DECLARE_ALIGNED( int, luma4x4[16], 16 );[/code]
Que signifie cette ligne?
elle remplace DECLARE_ALIGNED par une initialisation avec le type, la variable et .... . que veut signifie aligned()[/color] et par quoi le remplacer?
Avez vous des proposition pour la changer?
Je cherche à modifier cette ligne pour le compilateur que j'utilise (compilateur de simulateur DSP CCStudio 3.1).
désolé pour le dérangement mais je viens de trouver la réponse. c'est une optimisation typique au compilateur GCC.
pour les curieux ici il y a aussi plus de renseignement sur le site de GCC
Oui, c'est pour dire au compilateur d'aligner les variables en mémoire sur un exposant de 2 donné.
C'est spécifique à gcc (non normé), et ça sert juste à optimiser l'accès aux variables (adresse de la 2nde var = adresse de la première + sa taille d'alignement en bytes).
http://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/Type-Attributes.html
Maintenant, pour que ça marche avec ton compilateur, il suffit de remplacer ton define par:
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.