ginglese Posted May 23, 2003 Share Posted May 23, 2003 bonjour, je voudrais avoir des infos sur l'influence d'un #pragma pack + autre infos. dans la doc ils disent qu'il agit sur la 1ère structure suivant le pragma mais est qu'il agit sur les suivantes. que se passe t'il si on defini #pragma pack dans un header inclue dans plusieurs autres fichier ? merci. Link to comment Share on other sites More sharing options...
Guest Posted May 31, 2003 Share Posted May 31, 2003 Salut, Le pragma pack permet d'aligner les structures. #pragma pack(push,1) te permet par exemple de "coller" toutes les variables de ta structure entre elles. Sans ça, tu peux avoir des "blancs" entre deux : struct { short _s; char _c; long _l; }mystruct; Entre _c et _l il peut y avoir 1 octet de perdu de par l'alignement. En effet, pour optimiser le code, le compilateur aura généré un octet de plus entre _c et _l afin que toutes les adresses des variables soient paires. (L'ordinateur travaillant plus vite avec des adresses paires.) La perte peut être plus importante, tout dépend du compilateur. Tu peux le plus souvent spécifier l'alignement au compilateur directement dans les options de compilation. Enfin, la façon "propre" de définir les pragma pack est de faire un #pragma pack(pop) à la fin de ton include pour éviter les effets de bord sur d'autres includes. Voici un lien où les explications seront plus détaillées : http://www.kamron.net/french/prog/tips.php Bon courage ! Irgoff Link to comment Share on other sites More sharing options...
ginglese Posted June 2, 2003 Author Share Posted June 2, 2003 merci. j'avais déjà vue ce site. il ne réponds pas à mes questions ..... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.