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

埃文·奥尔森(Evan Ohlsen)

尝试在antoher中包含一个头文件的枚举时,我一直遇到问题。我正在使用的环境是使用IAR Embedded Workbench的嵌入式C。

我有一个名为“ enums.h”的专用枚举类型的头文件。

#ifndef ENUMS_H_
#define ENUMS_H_

typedef enum
{
    SET,
    SCHEDULE,
    EXECUTE
}action_type_t;

#endif

还有一个名为“ parser.h”的解析器的头文件

#ifndef PARSER_H_
#define PARSER_H_

#include "enums.h"
#include <stdint.h>

typedef struct
{
    action_type_t action;
    uint16_t nbytes;
}Message;

#endif

在parser.c中,我将标头包括为

#include "parser.h"

编译此文件时,出现错误“标识符action_type_t未定义”

我在这里做错了什么?在这一点上,我很沮丧。

谢谢

PSkocik

您的enum定义缺少逗号,在没有包含的情况下parser.h使用uint16_t<stdint.h>并且(更多余的是,)您的include Guard宏侵犯了保留的命名空间,因为它以_和大写字母开头。

这应该工作:

enums.h

#ifndef ENUMS_H_
#define ENUMS_H_

typedef enum
{
    SET,
    SCHEDULE,
    EXECUTE, /*the last comma is optional*/
}action_type_t;

#endif

parser.h

#ifndef PARSER_H_
#define PARSER_H_

#include "enums.h"
#include <stdint.h>

typedef struct
{
    action_type_t action;
    uint16_t nbytes;
}Message;

#endif

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

来自第二个头文件中的一个头文件的Typedef用法

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

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

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

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

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

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

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

如何从另一个头文件触发插槽

为什么我不能将头文件导入一个头文件中的库中?

C ++在另一个类头文件中声明一个类

您可以在一个库中实现多个头文件吗?

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

如何在另一个类头文件中定义类构造函数?

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

如何在一个以上的源文件中包括在头文件中声明的struct变量?

如何让一个头文件中的声明访问三个单独的视图控制器?

在C中链接多个头文件

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

查找具有特定文件名格式的文件,为每个文件添加一个头文件,并将每个文件的结果保存到原始文件中

头文件中的外部枚举

如何在 C 编程中将两个头文件和 3 个 c 文件链接到一个可执行文件中?

使用两个 .cpp 文件和一个头文件

头文件中的一个功能使用的功能

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

在两个.c文件中包括头文件

包括来自另一个文件的枚举