Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将Int传递给C函数_Ios_Objective C_Swift - Fatal编程技术网

Ios 将Int传递给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 因此,必须将

我正在编写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)

因此,我的问题是如何将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类型可在文档中找到