2012-02-23 86 views
0

你好,我想調用一個c函數從一個客觀的c方法我該怎麼做?Objective-C調用C函數

這裏是我的功能

static BOOL test() { 

.... 


if(...){ 
return YES; 
}else{ 
return NO; 
} 
.... 
} 
+0

你問過之前你還試過嗎? Obj-C是C的超集,所以所有的C代碼在Obj-C類/環境中仍然可行 – MJB 2012-02-23 23:10:38

+0

當然我已經試過了 – 2012-02-23 23:15:56

回答

4

就像你在一個C程序將:

-(void) myVoidMethod { 
    BOOL res; 
    res = test(); 
} 

不要忘了申報/包括相關的標題(再次,就像在C程序)。另外,正如daknøk提到的,Objective-C是C的一個嚴格超集,所以C的作品與Objective-C一起工作。

+2

值得注意的是,每一個有效的C代碼都是有效的Objective-C代碼並做與C完全相同的事情。 – 2012-02-23 23:00:54

+0

你是什麼意思聲明頭? c代碼與方法在同一個文件中,當我使用上面的代碼說「隱式聲明的函數test()在C99中是無效的」 – 2012-02-23 23:05:57

+1

@MpampinosHolmens - 如果它在同一個文件中,那麼你不需要聲明它。如果你有一個特定的錯誤,請告訴我們它是什麼。 – MByD 2012-02-23 23:07:41

1

你可以調用C函數從休耕的方式對象的C函數...

-(void)viewDidLoad 
{ 
    // calling the c function from objective-c function 

    someFunctionName(); 
} 

這是我對象的C函數

void someFunctionName() 
{ 
    // write logic what you want in this function... 

    int a ,b; 
    a=10; 
    b=20 
printf("A value is %d \n B value is %d",a,b); 


} 

這是我的C函數...