ошибка компиляции в файле target-c - PullRequest
0 голосов
/ 19 марта 2011

Я занимаюсь разработкой приложения для командной строки, которое использует файлы obj-c и c вместе. В моем файле obj-c (скажем, x.m) я использую структуру, которая использует интерфейс, а интерфейс использует структуру. Это легко обрабатывается в C ++ с помощью предварительных объявлений, но в моем приложении мне нужен obj-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’

Ответы [ 2 ]

1 голос
/ 19 марта 2011

Вы забыли ;

должно быть

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

При использовании файла .m вы должны использовать структуры в стиле c.например,

typedef struct mystruct_
{
...
} mystruct;

или

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

Если вы хотите структуры, как в c ++, измените расширение файла на .mm для поддержки c ++

0 голосов
/ 19 марта 2011

Почти нет.Измените код, чтобы он выглядел так:

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

@interface abcDelegate:NSObject {
     @public
          struct abc *abc; 
} 
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...