包含多次的头文件中的Typedef

Bra*_*enP 3 c struct typedef header header-files

基本上,我已经定义并输入了这个结构:

typedef struct{
    void** elements;
    int numElements;
    int itemSize;
    int capacity;
    int dynamicElements;
}array;
Run Code Online (Sandbox Code Playgroud)

我已经编写了动态数组操作函数.但是,我有点问题.在各种函数中,我将此结构作为参数传递.为了模块化代码,我需要在头文件中对这些函数进行原型化(为了允许类型数组的参数,我需要在这些头文件中包含"array.h".)

因此,在包含所有头文件之后,"array.h"头文件已被多次包含.正如所预料的那样,struct类型不止一次被typedef,并导致冲突.

我的问题是:如何在我的头文件中定义这个定义,这样如果多次包含它就不会中断?

Oli*_*rth 10

通过使用包含警卫.

#ifndef ARRAY_H_
#define ARRAY_H_

typedef struct {
    ...
} array;

#endif
Run Code Online (Sandbox Code Playgroud)