不太明白你的通信指啥子。我假設(shè)你的意思是Go和C通過(guò)內(nèi)存互相傳遞變量是么?引申下就是Go調(diào)用C函數(shù)了是么?摘抄自:CSDN-關(guān)于go語(yǔ)言從Go調(diào)用C/C++:RobPike的GCpackage里有一個(gè)工具叫cgo,可以讓Go程序調(diào)用標(biāo)準(zhǔn)C程序。另一個(gè)更現(xiàn)實(shí)的路子是:SWIG從2.0版本開(kāi)始支持Go,讓Go程序能調(diào)用C/C++程序。如果用SWIG+RobPike的GC,那么可以把C/C++程序編譯成一個(gè)sharedlibrary,然后Go程序在運(yùn)行的時(shí)候鏈接之。但是在寫分布式計(jì)算程序的時(shí)候,我們經(jīng)常希望用靜態(tài)鏈接——這樣executablebinaryfile雖然較大,但是不需要實(shí)現(xiàn)在機(jī)群中每臺(tái)機(jī)器上保證部署相同版本的動(dòng)態(tài)鏈接庫(kù)。這種需求需要用SWIG+IanTaylor的gccgo編譯器。我在32bit的UbuntuLinux和64bit的SUSELinux上都成功的編譯了剛剛發(fā)布的GCC4.6(其中包含gccgo),并且實(shí)驗(yàn)了SWIG+gccgo的方法。節(jié)選自:具體請(qǐng)打開(kāi)該文章詳細(xì)看看開(kāi)源中國(guó)-Go和C如何共享內(nèi)存資源Go語(yǔ)言的cgo技術(shù)允許在Go代碼中方便的使用C語(yǔ)言代碼.基本的用法如下:packagerand/*#include*/import"C"funcRandom()int{returnint(C.random())}funcSeed(iint){C.srandom(C.uint(i))}其中"C"是導(dǎo)入一個(gè)虛擬的包,用于引用C語(yǔ)言的符號(hào).