gpt4 book ai didi

ios - 如何从 swift 读取 C 全局变量?

转载 作者:行者123 更新时间:2023-11-30 13:16:46 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com