c typedef (ed) непрозрачный указатель

Я определил непрозрачную структуру и связанные API следующим образом:

typedef struct foo foo;
foo *create_foo(...);
delete_foo(foo *f);

Я не могу определить структуру в моем файле c. Выдает ошибку переопределения.

typedef struct foo {
   int implementation;
}foo;

Я могу использовать foo в файле c без typedef, но мне нужен typedef (т.е. использовать его напрямую как foo *). Есть способ?

15
задан Manish 4 June 2015 в 21:21
поделиться