宏函数调用CGO

问题描述 投票:0回答:1

1对自我有一个程序;

package main

//#define sum(a,b) (a)+(b)
import "C"

func main() {
        print(C.sum(1,2))
}

它应该非常直接并打印3.但编译失败:

could not determine kind of name for C.sum

作为我在cgo中找到的有限文档,经过一些测试后,cgo可以处理宏常量,但是如何使用宏函数/参数呢?

go cgo
1个回答
0
投票

很简单,你只需要一个包装器:

//#define SUM(a,b) (a)+(b)
//int sum(int a, int b) {
//  return SUM(a,b);
//}
import "C"

func main() {
    print(C.sum(1, 2))
}
© www.soinside.com 2019 - 2024. All rights reserved.