⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Go cgo:调用C语言库

学习使用cgo在Go中调用C代码,包括类型转换、内存管理和构建标签。 · 难度:入门 · +15XP

cgo简介

cgo允许Go程序直接调用C函数,访问C库。通过import "C"指令和注释中的C代码实现。

基本用法

// #include 
// #include 
import "C"
import "unsafe"

func main() { cstr := C.CString("Hello from C!") C.puts(cstr) C.free(unsafe.Pointer(cstr)) }

类型映射

C类型Go类型
intC.int
char**C.char
void*unsafe.Pointer
size_tC.size_t

内存管理

使用C.CString分配的内存必须手动释放,否则造成内存泄漏。推荐使用defer C.free(unsafe.Pointer(cstr))

练习提示

调用C的sqrt函数(来自math.h)计算平方根。注意链接时可能需要-lm参数。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 142 篇
0 完成
🔥 0