2009-05-18 8 views
3

Visual C++ vous permet de sélectionner les membres de la structure alignemnt dans la page de propriétés du projet. Le problème est que cette configuration est utilisée pour tous les srtructs du projet.Alignement des membres de la structure dans Visual C++ 2008

Y a-t-il un moyen (spécifique à VC++, je suppose) de définir individuellement l'alignement d'un certain membre de struct? entre les différents champs

Répondre

6
+0

Très pratique, merci. Est-ce standard ou MS spécifique? –

+0

Non, gcc l'a aussi http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html – KIV

+0

Les #pragmas ne sont jamais standard car ils sont définis comme étant définis par l'implémentation. Cependant, GCC les soutient également: http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html – Joey

0

pour les alignements de structure très spécifiques que vous pouvez jouer avec des octets de remplissage

ajouter donc quelques octets fictifs, jusqu'à ce que l'alignement correspond à vos besoins .

exemple:

exemple struct { courts x non signés; octet dummy1; octet dummy2; octet dummy3; octet dummy4; octet dummy5; octet dummy6; non signé int y; };

si les octets factices auraient pas été placés, l'int aurait probablement été des lieux sur offset 4 (4 octets à partir du début de la struct, alors que maintenant il a été placé à l'offset 8)

Waring : très spécifique au compilateur, et mauvaise pratique du code; ^)

Questions connexes