栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我不能从Golang中正确读取C常量?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我不能从Golang中正确读取C常量?

H5T_NATIVE_UINT64不是常数,而是#define,最终结果为

(H5Open(),H5T_NATIVE_UINT64_g)
,而cgo无法理解。

通过在gcc的预处理器上打开调试输出可以很容易地进行检查:

gcc -E -dM your_test_c_file.c | grep H5T_NATIVE_UINT64

结果:

#define H5T_NATIVE_UINT64 (H5OPEN H5T_NATIVE_UINT64_g)

现在对H5OPEN相同:

gcc -E -dM test_go.c | grep '#define H5OPEN'

给出:

#define H5OPEN H5open(),

现在,cgo确实了解简单的整数常量定义,例如

#define VALUE 1234
,或gcc预处理器将变成整数常量的任何内容。见函数
func (p*Package) guessKinds(f *File)
$GOROOT/src/cmd/cgo/gcc.go



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号