__attribute__

Bonjour,

J'aimerais savoir c'est quoi "__attribute__" au Linux , parce que j'ai un code C adapté à Linux mais que je compile sur un autre environnement plus spécifique et qui me génère des erreurs à cause de déclarations de typedef de type
"__attribute__((........)) .......", et quand j'élimine le "__attribute__((........)) " et je laisse la deuxième partie de la déclaration l'erreur s'en va , donc je veux savoir c'est quoi l'effet de ce "__attribute__" et l'effet de son élimination.

Merci beaucoup.
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    Ce sont des instructions propres à GCC et qui pourront donc poser problème avec d'autres compilateurs.
    Ca te permet de donner des indications spécifiques au compilateur par exemple pour la convention de passage de paramètres aux fonctions:
    http://www.commentcamarche.net/faq/sujet 4874 programmation conventions de passage de parametres sous x86
    Ou encore préciser l'alignement des données, étant donné que les structures sont alignées en fonction de la mémoire, on peut forcer un certain alignement...

    Bref tout un tas de choses comme ça.
    1. Modérateur
      Au fait concernant l'élimnation de ces attributs, la conséquence c'est la surprise totale. Ton programme crashera sûrement , ou bien tu auras des bugs bizzares...
      1. Mer ci kilian, j'espère que j'arriverai à les remplacer par les "indications spécifiques".
        1. Modérateur
          Tu trouveras toujours un équivalent pour un autre compilateur à priori...