__attribute__
infona
Messages postés
13
Statut
Membre
-
kilian Messages postés 8854 Statut Modérateur -
kilian Messages postés 8854 Statut Modérateur -
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.
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.
4 réponses
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.
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.
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...