在golang中初始化C结构时,struct initializer中的值太少
发布时间:2020-12-16 19:03:33 所属栏目:大数据 来源:网络整理
导读:我已经尝试了以下程序,但它在编译时告诉我“struct initializer中的值太少”. package main/*#include stdlib.hstruct Person { char *name; int age; int height; int weight;};*/import "C"import "fmt"type p C.struct_Personfunc main() { person := p{C
我已经尝试了以下程序,但它在编译时告诉我“struct initializer中的值太少”.
package main /* #include <stdlib.h> struct Person { char *name; int age; int height; int weight; }; */ import "C" import "fmt" type p C.struct_Person func main() { person := p{C.CString("Giorgis"),30,6,175} fmt.Println(person) fmt.Println(C.GoString(person.name)) fmt.Println(person.age) fmt.Println(person.height) fmt.Println(person.weight) } 我该如何解决这个有线问题? struct Person { char name; int age; int height; int weight; }; 另外,当我使用时 struct Person { char *name; }; 它也运作良好. 无论如何,我该如何解决?谢谢.
请尝试将字段名称放在struct literal中.
person := p{name: C.CString("Giorgis"),age: 30,height: 6,weight: 175} 这是因为在名称和年龄之间插入了一个匿名的4字节padding字段. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |