Chinaunix首页 | 论坛 | 博客
  • 博客访问: 746258
  • 博文数量: 116
  • 博客积分: 923
  • 博客等级: 准尉
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-06 21:43
个人简介

一直帮老板搬运代码!!!

文章分类
文章存档

2013年(47)

2012年(69)

分类: LINUX

2013-01-25 11:36:44

在VC:

#pragma pack(1)

typedef struct St2Tag

{

    St1 st1;

    char ch2;

} St2;

#pragma pack()

 linux



#pragma pack( push, 1 )

typedef struct {

    u_short    flag;            // 协议识别标志
    u_short    version;         // 协议版本
    u_short    cmd;             // 协议命令类型
    u_short    subcmd;          // 协议子命令
    uint32_t   bodylen;         // 包体长度
    uint32_t   crchead;         // 协议头校验 crc32
    char       luid[MD5_LEN];   // 用户唯一识别码

} cmnp_protocol_header_t;

#pragma pack( pop )


合成:

static
cst_inline
void
cst_cmnp_build_proto_header( cmnp_protocol_header_t* head, u_short flag, const char* luid, u_short bodylen, u_short cmd, u_short subcmd )
{
    if( !head ) return;

    head->flag      = flag;
    head->version   = htons( CMNP_HEAD_VER );
    head->cmd       = htons( cmd );
    head->subcmd    = htons( subcmd );
    head->bodylen   = htonl( bodylen );
    head->crchead   = htonl( 0 );
    memcpy( head->luid, luid, MD5_LEN );
}
阅读(1040) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~