c2go是将C转化为Go的工具。
此项目的目标是:
创建一个通用的工具,可以将C转化为Go跨平台一个可重用和可预见的工具提供快速和小巧的版本使用示例:
下面例子是将一段C代码翻译为Go代码
#include<stdio.h>intmain(){intn,c;printf("Enteranumber\n");scanf("%d",&n);if(n==2)printf("Primenumber.\n");else{for(c=2;c<=n-1;c++){if(n%c==0)break;}if(c!=n)printf("Notprime.\n");elseprintf("Primenumber.\n");}return0;}c2gotranspileprime.cgorunprime.goEnteranumber23Primenumber.prime.go 代码如下
packagemainimport"unsafe"import"github.com/elliotchance/c2go/noarch"//...lotsofsystemtypesinGoremovedforbrevity.varstdin*noarch.Filevarstdout*noarch.Filevarstderr*noarch.Filefuncmain(){__init()varnintvarcintnoarch.Printf([]byte("Enteranumber\n\x00"))noarch.Scanf([]byte("%d\x00"),(*[1]int)(unsafe.Pointer(&n))[:])ifn==2{noarch.Printf([]byte("Primenumber.\n\x00"))}else{forc=2;c<=n-1;func()int{c+=1returnc}(){ifn%c==0{break}}ifc!=n{noarch.Printf([]byte("Notprime.\n\x00"))}else{noarch.Printf([]byte("Primenumber.\n\x00"))}}return}func__init(){stdin=noarch.Stdinstdout=noarch.Stdoutstderr=noarch.Stderr}
评论