培训首页  >  软件开发新闻  >  获取packed struct的大小

获取packed struct的大小

[2018-08-21 15:36:48] 浏览量:130 来源:

北京兄弟连IT

  “区块链是一门集合密码学、共识算法、智能合约、超级账本等多门技术的复杂性综合学科。”尹正表示,区块链培训机构的师资质量及其对区块链行业的认知水平参差不齐,普通消费者也无从考究。

 

  Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的性和脚本语言的易用性和富于表达性。

 

网络协议里面,很可能遇到自定义的封包,对应到c里面的是

 

typedef struct _PackageHeader

{

    int headerLen;

    int timeStamp;

    short cmd  

};

为了保证单字节对齐,可以加上编译选项

 

#pragma pack(1)

 

 

可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下

 

package main

 

import (

    "encoding/binary"

    "fmt"

)

 

type TestStruct struct {

    a uint32

    b int8

}

 

func main() {

    var testObject TestStruct

    size := binary.Size(testObject)

 

    fmt.Println(size)

}

高能预警,兄弟连教育区块链直播课程8月持续火爆来袭!

原价1188元的12节区块链进阶课程,现仅需1元!

还可取《Go语言基础实战项目开发》与《Go语言实战项目开发》教材两本!!

限量!!先到先得!!

http://www.ydma.cn/open/course/24



文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息

温馨提示