如何在多个 .c 文件中包含不透明类型?

Mar*_*raz 0 c abstract-type opaque-pointers

我应该根据头文件和一些进一步的描述来制作一个程序。需要解决不透明类型的问题。不透明结构在头文件中与一些其他函数一起声明。但每个函数都应该有自己的 .c 文件,问题就来了。我应该做什么或者应该在哪里定义不透明结构以便我的函数可以使用它?

我有这样的文件:

header.h source.c(main) function1.c function2.c 等

在这种情况下我不知道该怎么办。

mel*_*ene 5

我将创建一个私有(内部)头文件,与公共 header.h 文件分开,其中包含结构的定义。

为了保持一致性,它可能应该包含公共标头。就像是:

#ifndef INTERNAL_HEADER_H_
#define INTERNAL_HEADER_H_

#include "header.h"  // contains 'struct foo;'

struct foo {
    int data;  // or whatever
};

#endif
Run Code Online (Sandbox Code Playgroud)

然后,每个 .c 文件都可以包含internal_header.h 并访问结构成员。