Je comprends l'alignement de la structure est « mise en œuvre spécifique », mais Je me demandais s'il y a un moyen simple de calculer l'alignement de la structure, par exemple:Y at-il un moyen simple (macro?) Pour dire l'alignement de la structure?
typedef struct
{
char c;
int i;
} test;
if sizeof(test) - (sizeof(char) + sizeof(int)) == 0 means alignment is 1 byte;
if sizeof(test) - (sizeof(char) + sizeof(int)) == 1 means alignment is 2 bytes;
// ...etc...
est l'hypothèse ci-dessus fiable vrai?
#include mannequin struct {x omble chevalier; int i; }; size_t test_alignment = offsetof (struct dummy, i); fait ci-dessus le travail? –
Cela dépend de ce que vous entendez par "œuvres". Il définit test_alignment à l'alignement de 'i' dans' struct dummy'. Si c'est ce que vous voulez faire, alors cela fonctionne certainement. –
Cela testerait l'alignement de type 'int' (je supposais que vous vouliez tester l'alignement du type' test'?) – caf