Go 语言学习手册
免费学习
完整知识体系
快速检索
Go语言学习手册《CGO 调用 C 代码》:CGO 允许 Go 程序调用 C 代码,用于使用现有的 C 库或进行底层操作。 **基本示例:** ```go // #include // #include import "C" func main() { cstr :=...
CGO 与汇编
CGO 调用 C 代码
【详细说明 & 代码示例】
CGO 允许 Go 程序调用 C 代码,用于使用现有的 C 库或进行底层操作。
**基本示例:**
```go
// #include
// #include
import "C"
func main() {
cstr := C.CString("Hello from C")
C.puts(cstr)
C.free(unsafe.Pointer(cstr))
}
```
**注意事项:**
- 需要导入 `C` 包(虚拟包)
- 注释中的 C 代码在包编译时处理
- 使用 `unsafe` 操作指针
- 跨平台要考虑不同 C 库兼容性
**使用 C 结构体和函数:**
```go
// typedef struct { int x; int y; } Point;
// Point* newPoint(int x, int y) { Point* p = malloc(sizeof(Point)); p->x=x; p->y=y; return p; }
import "C"
func main() {
p := C.newPoint(10, 20)
defer C.free(unsafe.Pointer(p))
fmt.Printf("Point: %d, %d\n", p.x, p.y)
}
```
**性能开销:** 每次 CGO 调用都有切换开销,适合少量调用,大量计算最好用 Go 实现。
学习提示:建议安装 Go 环境(go.dev/dl),使用 VS Code 或 GoLand 编写代码,并熟练使用 go run、go build、go mod 等命令。
全部章节目录(共 30 个知识点)
Go 基础 (1个知识点)
变量与数据类型 (2个知识点)
控制流程 (2个知识点)
结构体与方法 (2个知识点)
接口(interface) (1个知识点)
指针 (1个知识点)
错误处理 (1个知识点)
包管理 (1个知识点)
并发:goroutine (1个知识点)
并发:channel (1个知识点)
同步原语 (1个知识点)
标准库 (2个知识点)
网络与 HTTP (1个知识点)
测试与性能 (1个知识点)
反射与泛型 (1个知识点)
CGO 与汇编 (1个知识点)
Web 框架 (1个知识点)
数据库操作 (1个知识点)
配置与日志 (1个知识点)
部署与运维 (1个知识点)
设计模式 (2个知识点)
进阶技巧 (2个知识点)
使用说明
- • 本手册涵盖 Go 语言从基础到并发实战、Web 服务的完整知识体系
- • 在搜索框输入关键词,快速定位相关知识点
- • 点击条目标题进入详情页,查看详细说明与代码示例
- • 页面按分类展示所有知识点,方便系统性学习
- • 建议安装 Go 环境并使用 VS Code 或 GoLand 进行实践