Tom's Guide > Forum > Programmation > Que signifie cette ligne de code???

Que signifie cette ligne de code???

Forum Programmation : Que signifie cette ligne de code???

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour!

Ce code vient de l'encodeur x264.
Mon compilateur ne comprend pas cette ligne:

Code :
  1. #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).

MERCI DE VOS REPONSES

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

Salut!!

Répondre à zicos22

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:

Code :
  1. #define DECLARE_ALIGNED( type, var, n )        type var


Tu n'y perdra probablement pas grand chose ;-)

Répondre à CRicky
Tom's Guide > Forum > Programmation > Que signifie cette ligne de code???
Aller à :

Il y a 550 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

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.

Répondre Annuler
Liens