C头文件包含在另一个头文件中,并且都包含在ac文件中

强尼

我对C中的头文件有一个疑问。假设我有一个头文件,其中包含一个名为的结构汽车cars.h,如下所示:

typedef struct car_s {
    string plate;
    string model;
} car;

现在,我有另一个头文件,其中包括上述头文件,称为drivers.h,如下所示:

#include "cars.h"

typedef struct driver_h
{
    string id;
    string name;
    car own_car;
} driver;

现在,假设我有另一个文件,但这一次是一个C文件,名为main.c,如下所示:

#include "cars.h"
#include "drivers.h"

int main() {
    car c;
    driver bob;
    bob.own_car = c;
    return 0;
}

您能否解释为什么这是错误的,我该怎么做以防止出现任何错误?

谢谢!

哈伦·图卡科维奇

问题是同一头文件可能被多次包含。如何防止在代码中多次包含相同的头文件?您可以将其添加到头文件中:

对于cars.h

#ifndef CARS_H
#define CARS_H

typedef struct car_s{
    stringplate;
    string model;
}car;

#endif

这将检查此头文件是否已经包含,如果不再包含,则现在将包含它。

您也可以这样做drivers.h

#ifndef DRIVERS_H
#define DRIVERS_H

#include "cars.h"
typedef struct driver_h
{
    string id;
    string name;
    car own_car;
} 

#endif

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以将一个CSS文件包含在另一个文件中?

Makefile | 对头文件中包含的另一个头文件的依赖

仅将json文件包含在另一个json文件中

将一个.hgignore文件包含在另一个文件中的方法

如何在另一个头文件中包含c头文件?

再次在自定义函数中包含相同的头文件,这些头文件已经包含在主程序中了吗?

在另一个头文件中包括头文件中的typedef枚举

为什么在另一个头文件中声明结构会导致LNK2001错误?

在C ++中使用另一个头文件中的抽象类

如何检查一个文件的值是否包含在另一个文件的值中?

头文件中的#pragma GCC system_header是否扩展到包含它的另一个源文件或头文件中?

C ++是否包括所有包含在头文件中的头文件?

删除包含在预编译头文件中的内容的优点?

将源文件包含在另一个源中

在C中包含头文件

C文件扩展名(如果您将C文件包含在另一个文件中)

查找包含在另一个文件中定义的一组连续行的文件列表

C编程如何在另一个头文件中打印出结构的元素?

C++ - 在另一个头文件中包含一个头文件以使全局变量可用于数组声明

如何检查一个文件的内容是否包含在ruby中的另一个文件中

C++ 在两个头文件中包含一个类

是否可以将一个 Caffe 的 prototxt 文件包含在另一个中?

删除包含在另一个文件中任何位置找到的模式的行

将仅包含头文件的库包含在单个 cpp 文件中

C++ 编译不同的 .cpp 文件,将它们包含在头文件中

在 VS 2017 中为“便携式”项目包含一个头文件(C++)

如何将一个单独的 Swift 包中的 C 头文件包含到另一个 Swift 包的 C 部分中

在 C 或 C++ 中,如何防止头文件中先前的 #define 影响以后包含的另一个头文件?

如何在 C 中包含另一个头文件中定义的结构数组?