cgo,go 调用 c 结构时候,遇到字段被屏蔽

2023-05-19 16:16:42 +08:00
 jitongxi

cgo 的时候遇到一个奇怪的东西, c 的 struct 里面字段都正常, 但是 cgo 仅仅拿到第一个字段,后面直接下划线给屏蔽了,这是为什么,看了下也没什么关键字啊

c struct:

typedef struct _NF_IP_PACKET_OPTIONS
{	
	unsigned short	ip_family;			
	unsigned int	ipHeaderSize;   	
	unsigned long	compartmentId;	
	unsigned long	interfaceIndex;   	
	unsigned long	subInterfaceIndex; 
	unsigned long	flags;				
} NF_IP_PACKET_OPTIONS, *PNF_IP_PACKET_OPTIONS;

test:

aaaa := &C.struct__NF_IP_PACKET_OPTIONS{}  
fmt.Printf("aaaa %+v", aaaa)

output:

aaaa &{ip_family:0 _:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]}
810 次点击
所在节点    Go 编程语言
3 条回复
jitongxi
2023-05-19 18:52:14 +08:00
暂时找到问题了,mingw gcc 编译器的缓存好像,但是不知道在哪里清
rekulas
2023-05-19 23:37:11 +08:00
jitongxi
2023-05-20 15:16:31 +08:00
@rekulas 换了试了下。。。 他妈的也不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/941313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX