16,548
社区成员




BYTE* Next() {return (char *)m_pA + sizeof(int) + Len();}
class A
{
BYTE *m_pA;
public:
A(BYTE *pA) : m_pA(pA) {}
int Len() {return *(int *)m_pA;}
char Buf(size_t n = 0) {return *((char *)m_pA + sizeof(int) + n);}
};
int asdf(BYTE *pMem)
{
A aaa(pMem);
int nLen = aaa.Len();
char Buf0 = aaa.Buf();
char Buf100 = aaa.Buf(100);
};
struct A
{
int nLen;
char pBuf[1];
};
size_t nMaxAlign = sizeof(结构体中对齐要求最严格的类型);
size_t nVarAlign = sizeof(变长数组元素类型);
size_t nBufSize = sizeof(A) - nMaxAlign + (nVarAlign * N + nMaxAlign - 1) / nMaxAlign * nMaxAlign;