Votre question

Que signifie cette ligne de code???

Tags :
  • simulateur
  • Programmation
Dernière réponse : dans Programmation
6 Juillet 2006 13:39:43

Bonjour!

Ce code vient de l'encodeur x264.
Mon compilateur ne comprend pas cette ligne:
  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

Autres pages sur : signifie ligne code

6 Juillet 2006 14:57:38

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!!
a b L Programmation
6 Juillet 2006 20:04:05

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:
  1. #define DECLARE_ALIGNED( type, var, n ) type var

Tu n'y perdra probablement pas grand chose ;-)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS