我想在 C 中获取全局变量并在 swift 中使用它们。
这是Csource.c
#include "Csource.h"
#include <stdio.h>
#define size 5
int buf[size];
void add()
{
int i;
for(i=0;i<size;i++)
{
buf[i] = buf[i] + 1;
}
}
这是 MySwift2-Bridging-Header.h
#include "Csource.h"
#define size 5
int buf[size];
void add();
这是 ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
add()
var a:Int32 = buf[0]// error Type'(Int32,Int32,Int32,Int32,Int32)'has no subscript members
}
如何在 C 中获取全局变量并在 swift 中使用它们?
最佳答案
您可以尝试在MySwift2-Bridging-Header.h
中声明变量 extern,但我认为它不会起作用:
#define size 5
extern int buf[size];
void add();
在 C 中读取或写入全局变量的一种简洁方法是使用函数来执行此操作:
/* Csource.c: */
int get_buf(int i)
{
if (i >= 0 && i < 5)
return buf[i];
else
return 0;
}
void set_buf(int i, int value)
{
if (i >= 0 && i < 5)
buf[i] = value
}
关于ios - 如何从 swift 读取 C 全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38138863/