一:环境
需要借助gcc打包,window下执行有报错,建议再linux环境下
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
go version go1.13.8 linux/amd64
二:具体步骤
1、在我们的 $GOPATH/src 路径下创建一个项目
2、在目录下创建一个c语言的头文件 hi.h 内容如下:
int demo(char *);
3、在目录下创建一个c语言的实现 hi.c 内容如下:
hi.c
#include <stdio.h>
#include <string.h>
int demo(char * s)
{
int len = strlen(s);
int map[256] = {0}; //哈希表
int res = 0, l = 0, r = 0;
while(r < len){ //遍历字符串
if(map[s[r]] == 0){ //不是重复字符,右指针向右移动
map[s[r++]]++;
}else{ //遇到重复字符,左指针向左移动
map[s[l++]]--;
}
res = len; //更新最大长度
}
char a = 'a';
s = &a;
printf("s: %s\n",s);
return res;
}
4、在目录下创建go启动文件 main.go 内容如下: