2016-07-01 6 views
0

私はCでグローバル変数を取得し、迅速にそれらを使用します。どのように迅速からCグローバル変数を読むには?

これはこれは

#include "Csource.h" 

#define size 5 
int buf[size]; 
void add(); 

MySwift2-ブリッジング・HEADER.Hで、これは私がグローバル取得できますか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 
} 

ある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; 
    } 
} 

ですCの変数を素早く使用しますか?

+0

は、あなたのCのファイルには、公開してください? – Dershowitz123

+0

はCであり、アクセス修飾子はありますか?どのように私は一般公開することができますか? –

答えて

0

あなたはMySwift2-Bridging-Header.hで変数のexternを宣言しようとするかもしれないが、私はそれがうまくいくとは思わない:Cでグローバル変数を読み書きする

#define size 5 
extern int buf[size]; 
void add(); 

一つのきれいな方法は、それを行うための関数を作ることです:

/* 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 
} 
+0

ありがとうございました。その方法はきれいです。 –

関連する問題