**环境:**
```
gcc 版本:gcc version 5.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
mingw :64位 5.1.1
go版本:go version go1.10.3 windows/amd64
编译环境:LiteIDE、goland均可
```
测试程序如下:
**test.h**
```
#ifndef _TEST_H_
#define _TEST_H_
#include <stdio.h>
#include <stdlib.h>
struct test1 {
int id;
char *name;
};
struct test2 {
int age;
int high;
};
typedef struct {
struct test1 num1;
struct test2 num2;
}test_st;
#endif
```
**test.c**
```
#include "test.h"
void init (test_st *p){
test_st test;
p->num1.id = 0;
p->num1.name = "hi";
p->num2.age = 90;
p->num2.high = 195;
}
```
**test.go**
```
package main
/*
#include "test.h"
void test_printf(struct test1 *p)
{
printf("%d %\r\n", p->id, p->name);
}
*/
import "C"
type TEST_ST struct {
t C.test_st
}
func NewTest_ST() *TEST_ST {
return &TEST_ST{}
}
func (h *TEST_ST) Pri() {
C.test_printf(h.test1) //这里会发生错误,这是怎么回事,是wingw问题吗?
}
func main() {
h := NewTest_ST()
h.Pri()
}
```
**错误输出:**
`.\test.go:20: h.test1 undefined (type *TEST_ST has no field or method test1)`
`错误: 进程退出代码 2.`
**现阶段状况**
```
1、windows 32位可以通过,环境同上,位数为32位
2、Windows 64位 一直如上错误输出,请问是什么原因??
```
有疑问加站长微信联系(非本文作者)