返回
北京兄弟连IT
置顶
该校与厚学网暂未合作,平台不保证课程的真实有效性,如有侵权等争议,请及时与厚学网联系处理
招生热线:400-656-1390

学校地址:北京市昌平区回龙观文华西路育荣教育园区兄弟连IT教育

获取packed struct的大小

130 2018-08-22 15:00:00

学习笔记

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

 

  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



文中图片素材来源网络,如有侵权请联系删除
来源:北京兄弟连IT
热门课程 全部课程

热门动态

申请免费试听

只要一个电话

我们为您免费回电

立即申请