1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 12:32:21 +00:00

Merge branch 'master' of github.com:chai2010/advanced-go-programming-book

This commit is contained in:
Xargin 2018-08-14 15:23:18 +08:00
commit 2dd86c2d31

View File

@ -4,9 +4,11 @@
## 2.1.1 最简CGO程序 ## 2.1.1 最简CGO程序
真实的CGO程序一般都比较复杂。不过我们可以反其道而行之一个最简的CGO程序该是什么样的呢要构造一个最简CGO程序首先要忽视一些复杂的CGO特性同时要展示CGO程序和纯Go程序的差别来。下面是我们构建的最简CGO程序 真实的CGO程序一般都比较复杂。不过我们可以由浅入深一个最简的CGO程序该是什么样的呢要构造一个最简CGO程序首先要忽视一些复杂的CGO特性同时要展示CGO程序和纯Go程序的差别来。下面是我们构建的最简CGO程序
```go ```go
package main
import "C" import "C"
func main() { func main() {
@ -35,7 +37,7 @@ func main() {
相比“Hello, World 的革命”一节中的CGO程序最大的不同是我们没有在程序退出前释放`C.CString`创建的C语言字符串还有我们改用`puts`函数直接向标准输出打印,之前是采用`fputs`向标准输出打印。 相比“Hello, World 的革命”一节中的CGO程序最大的不同是我们没有在程序退出前释放`C.CString`创建的C语言字符串还有我们改用`puts`函数直接向标准输出打印,之前是采用`fputs`向标准输出打印。
没有释放使用`C.CString`创建的C语言字符串会导致内存泄。但是对于这个小程序来说,这样是没有问题的,因为程序退出后操作系统会自动回收程序的所有资源。 没有释放使用`C.CString`创建的C语言字符串会导致内存泄。但是对于这个小程序来说,这样是没有问题的,因为程序退出后操作系统会自动回收程序的所有资源。
## 2.1.3 使用自己的C函数 ## 2.1.3 使用自己的C函数