使用两个头文件定义opaque类型?

时间:2015-09-13 09:00:04

标签: c

请考虑以下代码:

header.h

typedef struct foo_tag__ foo;

int do_something(foo data);

private.h

struct foo_tag__
  {
    /* Some fields go here. */
    int foo1;
    int foo2;
    double some_value;
  };

program.c

#include "header.h"
#include "private.h"

int main()
  {
    /* Do something */
    return(0);
  }

现在,当我这样做时,我会在整个地方收到错误。那么可以使用两个不同的头文件来定义不透明类型吗?一个是公共的,另一个是私有的,没有放在include目录中。

编辑:基于其他研究,我选择使用void *指针来为库提供不透明的接口。这个问题可以关闭。此外,链接的问题虽然相似,但与我尝试在一个头文件中定义opaque类型不同,然后在不同的头文件中填写定义,因为它在多个文件中使用。此外,链接的问题没有标记答案。

0 个答案:

没有答案