gpt4 book ai didi

c++ - 枚举 "does not name a type' 的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:35 25 4
gpt4 key购买 nike

g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5

我有一个问题,我似乎找到了我得到这个错误的方法。

文件statemachine.h

#ifndef STATEMACHINE_H_INCLUDED
#define STATEMACHINE_H_INCLUDED

#include "port.h"

enum state {
ST_UNINITIALIZED = 0x01,
ST_INITIALIZED = 0x02,
ST_OPENED = 0x03,
ST_UNBLOCKED = 0x04,
ST_DISPOSED = 0x05
};

void state_machine(event evt, port_t *port);

#endif /* STATEMACHINE_H_INCLUDED */

文件端口.h

#ifndef PORT_H_INCLUDED
#define PORT_H_INCLUDED

#include <stdio.h>

#include "statemachine.h"

struct port_t {
state current_state; /* Error 'state does not name a type */
.
.
};
#endif /* PORT_H_INCLUDED */

非常感谢您的任何建议,

最佳答案

会不会是您在“port.h”中包含“statemachine.h”,在“statemachine.h”中包含“port.h”?

尝试删除该行:

#include "port.h"

来自文件“statemachine.h”

编辑(根据下面 Daniel 的评论):

然后你需要转发声明你的port_t类型如下:

...
ST_DISPOSED = 0x05
};

struct port_t;

void state_machine(event evt, port_t *port);
...

关于c++ - 枚举 "does not name a type' 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com