Go和plan 9 C联合编程

上一篇说了下golang 语言怎么结合plan 9 assembler编写程序。

这次来开下go是怎么使用plan 9 c语言来开发一些库的,这里只是简单的使用一个简单例子进行演示。

还是看下源代码吧

 

C代码 
  1. #include "runtime.h"  
  2. void ·Add(int32 a,int32 b,int32 r) ;  

 

first.h 声明first.Add方法,同时引入runtime包的runtime.h头文件。

 

C代码 
  1. #include "first.h"  
  2. //first.c  
  3. void ·Add(int32 a,int32 b,int32 r) {  
  4.     r = a + b;  
  5.     USED(&r);  
  6. }  

 

 first.c 进行了first.Add方法的定义。

 

Golang代码 
  1. package first  
  2.   
  3. func Add(a,b int32) int32  

 first.go first.Add方法在golang语言中的声明。

 

Golang代码 
  1. package main  
  2.   
  3. import "fmt"  
  4. import "first"  
  5.   
  6. func main() {  
  7.     fmt.Println(first.Add(int32(14),int32(13)))  
  8. }  

 还是那个简单的main方法,调用first.Add方法,并且把结果打印到终端。

下面看下编译运行脚本吧。

 

Shell代码 
  1. # 8c -I$GOROOT/src/pkg/runtime -I$GOROOT/pkg/runtime/linux -I$GOROOT/src/pkg/runtime/linux/386 -wF first.c  
  2. # 8g -o _go_.8 first.go  
  3. # gopack grc first.a first.8 _go_.8  
  4. # 8g -I./ main.go  
  5. # 8l -L./ -o main main.8  
  6. # ./main   
  7. 27  
 就是这么简单。

你可能感兴趣的:(Go和plan 9 C联合编程)