为了账号安全,请及时绑定邮箱和手机立即绑定

go语言的BytePtrToString实现

标签:
Go

看了很久gosyscall,左看右看里面有BytePtrFromString却没有与之对应的BytePtrToString,很不理解这种别扭的设计,只想骂一句太变态了。虽然可以用cgoC.GoString代替,但是想到windows下面用cgo还要先装MingGW,就感觉很不完美,浑身不舒服。强迫症犯了,必须写一个BytePtrToString给自己治疗一下。

下面就给代码:

//convert C char* (以0结尾) to go stringpackage cstringimport (    "bytes"
    "unsafe")func BytePtrToString(p *byte) string {
    buf1 := bytes.NewBufferString("")    for p1 := p; *p1 != byte(0); p1 = (*byte)(unsafe.Pointer(1 + (uintptr)(unsafe.Pointer(p1)))) {
        buf1.WriteByte(*p1)
    }    return buf1.String()
}

结束



作者:从火星来
链接:https://www.jianshu.com/p/ca8e0815bd69

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消