typedef struct A
{
    WORD m1;
    WORD m2;
    LONGLONG n1;
    LONGLONG n2;
    LONGLONG n3;
    DWORD x;
}a;


然后,sizeof(A),等于多少?
40!!
WORD是2,DWORD是4,LONGLONG是8
2+2+8+8+8+4 = 32呀?怎么会是40?

原来是VC编译器的问题,project/setting中设置C++编译选项,将struct member alignment从默认的8 bytes设为1 byte,就好了。
...

可是,编译出现了很多warning,怎么办呢?可以用
#pragma pack(push,1)
typedef struct A
{
...
};
#pragma pack(pop)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-13
  • 2021-09-10
  • 2022-12-23
  • 2021-06-17
  • 2021-10-08
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-24
  • 2021-08-19
  • 2021-09-22
  • 2021-10-01
  • 2021-07-05
相关资源
相似解决方案