ホームに戻る
 構造体のアラインメント

#include <stdio.h>

#pragma pack(push)
#pragma pack(1)

typedef struct{
  char c;
  double d;
}a;

#pragma pack(pop)

#pragma -a8

typedef struct{
  char c;
  double l;
}b;

#pragma -a-

int main(){
  printf("%d\n", sizeof(a));
  printf("%d\n", sizeof(b));

  return 0;
}

実行結果は、

9
16

となります。

inserted by FC2 system