Visual Studio2008 C++结构体成员需要内存对齐吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio2008 C++结构体成员需要内存对齐吗?相关的知识,希望对你有一定的参考价值。

比如结构体struct Test char a; short b; double c ;成员变量长度依次是1字节、2字节、8字节。在Visual Studio2008 C++中将结构成员对齐设置为1时,结构体长度就是11字节。结构体成员对齐设置为默认值8时,结构体长度是16字节。定义一个此结构体类型变量,读取各个成员,从汇编上可以看到,两种对齐方式下,都是一次性读完的。结构体成员对齐默认值8,除了让结构体变大了,访问效率提高了吗?往上说内存对齐也有原因是为了代码移植。代码移植是把代码转移到其他操作系统或者编译器上,结构体成员位置放置是人家的事,与Visual Studio2008 C++有何关系?
求有大神给个合理解释。。。

参考技术A 效率有提高。除非你使用sizeof之类的,否则大小影响不大。追问

sizeof这个一般不咋需要吧,定义结构体为了表示一类物体的零部件的。定义结构体对象/new结构体对象、读写数据、delete结构体对象,结构体一般就这些用处。

以上是关于Visual Studio2008 C++结构体成员需要内存对齐吗?的主要内容,如果未能解决你的问题,请参考以下文章

将 C++ 项目从 Visual Studio 2008 转换为 Visual Studio 2010

我可以在 Visual Studio 2008 中使用 Visual Studio 6 编译的 C++ 静态库吗?

如何在visual studio2008中创建,编译和运行C++程序,

visual studio 2008 c++ 中怎样添加动态链接库?

Visual Studio 2008 C++ 语言支持?

从 Visual Studio C++ 6.0 到 VS 2008?