读书人

同样是1字节对齐linux windows下的值如

发布时间: 2012-05-29 12:16:00 作者: rapoo

同样是1字节对齐linux windows下的值怎么不一样

C/C++ code
#include <stdio.h>#include <iostream>using namespace std;class CTest{public:virtual ~CTest(){}protected:        unsigned short m_wDeviceType;    char  m_achAlias[128 + 4];    char  m_ach164Num[16 + 1];    unsigned int m_dwDeviceIP;}__attribute__( (aligned(1)) );sizeof(CTest)   //160换成__attribute__((packed))也一样都是160#pragma   pack(push,1)class CTest{public:    virtual ~CTest(){}protected:        unsigned short m_wDeviceType;    char  m_achAlias[128 + 4];    char  m_ach164Num[16 + 1];    unsigned int m_dwDeviceIP;};#pragma   pack(pop)sizeof(CTest)   //159linux下编译器是g++


[解决办法]
探讨

#pragma pack(push,1) #pragma pack(pop)
也能在linux下跑么

读书人网 >C++

热点推荐