__attribute__
Fermé
infona
Messages postés
13
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 avril 2008
-
21 avril 2008 à 22:38
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 22 avril 2008 à 10:27
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 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.
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
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
22 avril 2008 à 01:59
22 avril 2008 à 01:59
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.
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
22 avril 2008 à 03:11
22 avril 2008 à 03:11
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...
infona
Messages postés
13
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
24 avril 2008
22 avril 2008 à 09:01
22 avril 2008 à 09:01
Mer ci kilian, j'espère que j'arriverai à les remplacer par les "indications spécifiques".
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
22 avril 2008 à 10:27
22 avril 2008 à 10:27
Tu trouveras toujours un équivalent pour un autre compilateur à priori...