2011-03-19 52 views
0

我正在開發一個使用obj-c和c文件在一起的命令行應用程序。在我的obj-c文件(比如x.m)中,我使用了一個使用接口的結構,並且接口使用了一個結構。這很容易在C++中使用前向聲明處理,但我需要在我的應用程序中使用obj-c。在Objective-C文件中編譯錯誤

我想知道是否有人可以請說出我做錯了什麼。

感謝任何幫助和提前感謝。

typedef struct mystruct_s 
{ 
    ... 
    .... 
} mystruct; 

struct abc ; 
@interface abcDelegate:NSObject { 
    @public 
      struct abc *abc; 
} 
@end 

struct abc 
{ 
    mystruct b 
    abcDelegate *abcdelegate; 
}; 

我得到以下錯誤錯誤:

expected specifier-qualifier-list before ‘mystruct’ 
+1

and mystruct is defined? – Andrew 2011-03-19 08:32:51

+0

mystruct上面定義了abcDelegate – 2011-03-19 08:42:07

+0

請發送更多代碼請 – Andrew 2011-03-19 08:43:11

回答

1

你已經忘記;

應該

struct abc 
{ 
    mystruct b; 
    abcDelegate *abcdelegate; 
}; 

如果使用.m文件必須使用C樣式結構。如

typedef struct mystruct_ 
{ 
... 
} mystruct; 

struct abc 
{ 
    struct mystruct b; 
    abcDelegate *abcdelegate; 
}; 

如果你想結構,就像在C++中改變你的文件擴展名.mm支持C++

+0

;同樣的錯誤 – 2011-03-19 08:41:14

0

幾乎沒有。更改代碼如下所示:

struct abc 
{ 
    mystruct b; 
    abcDelegate *abcdelegate; 
}; 

@interface abcDelegate:NSObject { 
    @public 
      struct abc *abc; 
} 
@end 
+0

這不是一個解決方案。前向聲明必須工作 – Andrew 2011-03-19 08:37:49

+0

否不起作用 – 2011-03-19 08:40:56