Скрыть определение типа в C

У меня есть файл .c (библиотека функций) с функцией и определением вроде этого:

typedef long double big;
big foo(int x) { ... }

Я хочу создать интерфейс этой библиотеки, .h . Итак, я делаю:

typedef long double big;
big foo(int);

и удаляю typedef long double big; из файла .c . Но, поступая так, я отдаю определение типа big в моем интерфейсе, так что это не совсем чистый интерфейс. Есть идеи, как это исправить?

Я знаю, что могу сделать это в моем файле .c :

struct foo {
  long double;
};

, а затем в файле .h сделать:

typedef struct foo big;
big foo(int);

Но создание struct только для одного поля кажется бесполезным, плюс я должен использовать . Оператор всякий раз, когда я хочу прочитать большой .

0
задан Fooko R. 13 February 2012 в 23:41
поделиться