gpt4 book ai didi

c - AVR-GCC - 包含 header 的枚举错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:42 26 4
gpt4 key购买 nike

我无法发现我在哪里犯了错误,也不确定如何通过谷歌搜索解决方案。我收到以下错误:

In file included from buttons.h:8,
from buttons.c:1:
debug_mode.h:14: error: expected ')' before 'Button'

我在 buttons.h 中声明了一个枚举

#ifndef BUTTONS_HEADER
#define BUTTONS_HEADER

#include <avr/io.h>
#include <stdbool.h>
#include <util/delay.h>
#include "uart.h"
#include "debug_mode.h"

typedef enum {
NO_BUTTON,
BUTTON1,
BUTTON2,
BUTTON3,
BUTTON4,
BUTTON5,
BUTTON6
}
ButtonFlags;

void CheckButtons();
void SetButtonFlag();
void ProcessButtons();

#endif

我将它包含在另一个头文件 debug_mode.h 中:

#ifndef DEBUG_MODE_HEADER
#define DEBUG_MODE_HEADER

#include "uart.h"
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "buttons.h"

bool DebugModeEnabled = false;

void SetDebugMode();
void AnnounceDebugMode(bool State);
void DebugAnnounceLEDState();
void DebugAnnounceButtonState(ButtonFlags Button);

#endif

和 debug_mode.c:

#include "debug_mode.h"

void DebugAnnounceButtonState(ButtonFlags Button)
{
SendUARTString_P(DEBUGMODE_BUTTON_PRESSED_MSG);
switch (Button)
{
case 1: SendUARTString_P(DEBUGMODE_BUTTON1_MSG); break;
default: break;
}
}

如有任何帮助,我们将不胜感激

最佳答案

您的 header buttons.h 和 debug_mode.h 相互包含。您将需要以消除这种循环依赖的方式重构您的代码。

关于c - AVR-GCC - 包含 header 的枚举错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235805/

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