2016-07-26 48 views
0

我有Xcode的問題,我運行代碼時收到以下錯誤:Xcode中的extern錯誤

Error : Expected identifier or ')' 

這裏是個代碼:

#import "IOKitLib.h" 
#import <dlfcn.h> 
#import <pthread.h> 
#import <mach/mach.h> 
#import <sys/ptrace.h> 
#import <libkern/OSAtomic.h> 


static  mach_port_t masterPort = 0; 

extern "C" kern_return_t io_service_open_extended 
(
mach_port_t service, 
task_t owningTask, 
uint32_t connect_type, 
NDR_record_t ndr, 
io_buf_ptr_t properties, 
mach_msg_type_number_t propertiesCnt, 
kern_return_t *result, 
mach_port_t *connection 
); 

請幫我解決這個問題,讓我知道我在哪裏做錯了。謝謝 !

+0

哪條線?這個源文件的名稱是什麼? – Droppy

+0

爲extern「C」 kern_return_t io_service_open_extended –

+0

什麼是文件的名稱?它是一個C++源文件嗎? – Droppy

回答

0

extern "C"是在C++中才有效。你可以聲明在任何語言(C++,C或Objective-C)使用,例如從一個頭文件,使用__cplusplus後衛宏:

#ifdef __cplusplus 
extern "C" { 
#endif 

kern_return_t io_service_open_extended 
(
mach_port_t service, 
task_t owningTask, 
uint32_t connect_type, 
NDR_record_t ndr, 
io_buf_ptr_t properties, 
mach_msg_type_number_t propertiesCnt, 
kern_return_t *result, 
mach_port_t *connection 
); 

#ifdef __cplusplus 
} 
#endif 
+0

這是錯誤的代碼? :https://ghostbin.com/paste/qw8z7 –

+0

@AhmetMahmodo不,如果放到一個C++源文件。 – Droppy

+0

我該怎麼做? –