gpt4 book ai didi

c - 标识符枚举未定义

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

好的,我知道这是一个相当普遍的问题,但我找不到与我的问题类似的问题。

我总是遇到问题

identifier "Baserate" is undefined

我将其定义为

蒂姆.h

#include "tim_api.h"
enum Baserate {
Rate_62_5ns = 0x0,
Rate_125ns = 0x1,
Rate_250ns = 0x2,
Rate_500ns = 0x3,
Rate_1us = 0x4,
Rate_2us = 0x5,
Rate_4us = 0x6,
Rate_8us = 0x7,
Rate_16us = 0x8
};

问题是当我定义它在其中使用的函数时

tim_api.h

extern void TIM_Set_Period_ns(int Timer_Select, Baserate Set_Baserate, int Period);  

这是我构建嵌入式 C 程序的时候,但是当我在 C 控制台应用程序中运行它时,它可以工作

void TIM_Enable(Baserate my_baserate, void (*callback_function)());
int _tmain(int argc, _TCHAR* argv[])
{
TIM_Enable(Rate_62_5ns,prnt0);
while(1);
return 0;
}


void TIM_Enable(Baserate my_baserate,void (*callback_function)())
{
}

所以我的问题是,为什么相同的枚举 Baserate 在控制台应用程序中有效,但在嵌入式程序中却无效。

最佳答案

在 C 中你需要使用 typedef enum Baserate {/*你的值和以前一样*/} Baserate;

这是 C 和 C++ 之间的细微差别之一。

关于c - 标识符枚举未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22412848/

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