struct Struct1
{
BYTE byte1;
CTime time0;
BYTE byte2;}q;
int n=sizeof(q);
结果:n=12;
struct Struct1
{
CTime time0;
BYTE byte1;
BYTE byte2;}q;
int n=sizeof(q);
结果:n=8;
为什么有不同的n值?我觉得正确的n=6,请各位赐教。
{
BYTE byte1;
CTime time0;
BYTE byte2;}q;
int n=sizeof(q);
结果:n=12;
struct Struct1
{
CTime time0;
BYTE byte1;
BYTE byte2;}q;
int n=sizeof(q);
结果:n=8;
为什么有不同的n值?我觉得正确的n=6,请各位赐教。
#pragma pack(1)
struct{...};
#pragma pack(0)
就对了,这是由于编译器使用了内存对齐的技术
详细说明以下好吗?哪一个更好,速度更快?
struct Struct1
{
int byte1;
int byte2;
CTime time0;
}q;就不会有问题了。
我看过一篇关于优化的文章,说:
尽量要32位变量,
int a;要快于 BYTE a; char a;
因BYTE ,char 32位的CPU要进行内存调整,消耗一些时间。
c/c++
category/code generation
structure member alignment
选择1 byte
#pragma pack( pop, pack1 )