大家帮我计算一下发送这样一个结构体占有多少字节

zhouliang0806 2011-08-27 11:29:39
typedef	struct DQ
{
int symbol;
int T;
float DQ_WD;
float DQ_SD;
}DQ,*pDQ;
typedef struct CGK
{
int symbol;
int CGK_T;
int ID;
char CGK_RDMODE[16];
int CGK_RDST;
float CGK_IRSTAZ;
}CGK,*pCGK;
typedef struct GYXX
{
int symbol;
char GY_DWBZ[8];
char GY_FXMS[10];
float GY_BDJD;
int GY_NUM;
}GYXX,*pGYXX;
typedef struct test
{
DQ myDQ;
CGK myCGK;
GYXX myGYXX;
}test;

传输test这样一个结构体占多少字节,好像不是简单的相加,是不是要考虑字节对齐什么的。
谁能帮忙解释一下。
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
今晚又失眠 2011-08-29
  • 打赏
  • 举报
回复
单字节对齐么?
shenyan008 2011-08-29
  • 打赏
  • 举报
回复
sizeof(test)已经给你对齐后的答案了。
yynetsdk 2011-08-29
  • 打赏
  • 举报
回复
#pragma pack(1)

class...

struct ...

#pragma pack(0)
一条晚起的虫 2011-08-29
  • 打赏
  • 举报
回复
// 用sizeof()获取
// 程序中如果有#pragma pack()
abzhang2 2011-08-28
  • 打赏
  • 举报
回复
sizeof() 用不着那么麻烦。注意对齐
imLWJ 2011-08-28
  • 打赏
  • 举报
回复
mark 一下 什么叫对齐
ttktw 2011-08-27
  • 打赏
  • 举报
回复
struct DQ:4+4+4+4 = 16
struct CGK:4+4+4+16+4+4 =36
struct GYXX:4+8+12[本来为10,按4补齐为12]+4+4 =32
struct test:16+36+32 = 84
要考虑字节对齐,怎么对齐,网上很多资料,找找吧
wltg2001 2011-08-27
  • 打赏
  • 举报
回复
确实要考虑字节对齐,你用sizeof算一下不就行了,谁手工算这个啊

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧