Posez votre question Signaler

__attribute__

infona 13Messages postés 25 février 2008Date d'inscription - Dernière réponse le 22 avril 2008 à 10:27
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.
Lire la suite 

__attribute__ »

4 réponses
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
Mer ci kilian, j'espère que j'arriverai à les remplacer par les "indications spécifiques".
Ajouter un commentaire
Réponse
+0
moins plus
Tu trouveras toujours un équivalent pour un autre compilateur à priori...
Ajouter un commentaire
Ce document intitulé « __attribute__ » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?