c - 多次包含的头文件中的 Typedef

标签 c header struct typedef header-files

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

typedef struct{
    void** elements;
    int numElements;
    int itemSize;
    int capacity;
    int dynamicElements;
}array;

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

所以在包含了我所有的头文件之后,“array.h”头文件被包含了多次。正如预期的那样,结构类型已被多次类型定义,并导致冲突。

我的问题是:如何在我的头文件中包含此定义,以便它在多次包含时不会中断?

最佳答案

通过使用 include guards .

#ifndef ARRAY_H_
#define ARRAY_H_

typedef struct {
    ...
} array;

#endif

关于c - 多次包含的头文件中的 Typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9551298/

相关文章:

c - 将结构数组写入 C 中的二进制文件

c++ - 如何计算结构数组中唯一元素的数量?

c - 向 C 添加新功能需要哪些步骤?

c - 函数和头文件 (ansi c)

android - 从 Volley 响应中获取 header

html - 页眉大小问题

c - 这就是我在链表中​​创建链表的方式吗?

c - 在 C 中搜索另一个数组时将值插入数组?

c++ - Shell/Makefile 链接器

有人可以帮助我理解为什么我在下面的程序中遇到段错误