2011-03-19 87 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