Ios 将Int传递给C函数
我正在编写swift代码&需要调用一个C函数Ios 将Int传递给C函数,ios,objective-c,swift,Ios,Objective C,Swift,我正在编写swift代码&需要调用一个C函数 var idx = 5 //ERROR: Cannot invoke c_func with argument list of type '(Int)' c_func(idx) C函数签名为: void c_func(int idx) 因此,我的问题是如何将swiftInt传递给接受Int作为参数的C函数?C类型Int映射到swift作为参数 /// The C 'int' type. typealias CInt = Int32 因此,必须将
var idx = 5
//ERROR: Cannot invoke c_func with argument list of type '(Int)'
c_func(idx)
C函数签名为:
void c_func(int idx)
因此,我的问题是如何将swift
Int
传递给接受Int
作为参数的C函数?C类型Int
映射到swift作为参数
/// The C 'int' type.
typealias CInt = Int32
因此,必须将变量声明为CInt
:
var idx : CInt = 5
c_func(idx)
var idx = 5
c_func(CInt(idx))
或者将Int
转换为CInt
:
var idx : CInt = 5
c_func(idx)
var idx = 5
c_func(CInt(idx))
(当然,如果您想强调它是一个固定大小,可以使用Int32
整数类型。)
有关(目标-)C类型之间映射的更多信息
Swift类型可在文档中找到