CGO 注意事项
Golang 和 C 之间相互调用存在一些局限性。
首先不支持可变参数函数
我们知道 C 语言中 stdarg.h 这个头文件提供了可变参数的实现,但是 cgo 中暂未实现对这个特性的支持,这并不意味着 Golang 不支持可变参数,仅仅是 cgo 不支持而已。具体可以看这个 issue 和这个 commit。
其次不支持带参数的宏定义
运行如下两段不同的代码:
|
|
|
|
Golang 和 C 之间相互调用存在一些局限性。
我们知道 C 语言中 stdarg.h 这个头文件提供了可变参数的实现,但是 cgo 中暂未实现对这个特性的支持,这并不意味着 Golang 不支持可变参数,仅仅是 cgo 不支持而已。具体可以看这个 issue 和这个 commit。
运行如下两段不同的代码:
|
|
|
|