C 在头文件中调用枚举时遇到错误

C 在头文件中调用枚举时遇到错误,c,C,我在头文件中创建了以下函数(getHobby(嗜好)),当我在头文件中调用此函数时,出现了一个错误: conflicting types for 'getHobby' HobbiesTest.h enum Hobbies { SKATING, SPORTS }; char *getHobby(enum Hobbies hobbie) { <-- Compilation error "conflicing types for

我在头文件中创建了以下函数(getHobby(嗜好)),当我在头文件中调用此函数时,出现了一个错误:

conflicting types for 'getHobby'     
HobbiesTest.h

enum Hobbies {
    SKATING, SPORTS
}; 
char *getHobby(enum Hobbies hobbie) { <-- Compilation error "conflicing types for      
                                      'getHobby'
switch (hobbie) {
    case SKATING:
        return "SKATING";
    case SPORTS:
        return "SPORTS";
    }   
    return "INVALIDOPTION";
}
void enumTest(){
    printf("\nYour hobby is: %s",getHobby(SKATING));
}
enum{
滑冰、运动
}; 
char*getHobby(枚举hobbie嗜好){Put


在头文件的开头。您可以在定义此枚举之前使用它。

谢谢您的回复。实际上,枚举兴趣爱好已经声明在头文件的顶部。很抱歉在这里结尾处编写它。我只是复制粘贴方法,而不是粘贴整段代码。很抱歉。然后编辑您的问题,我们将继续我的答案可能还不成熟,但我不能忽略它…另外void enumTest()函数定义了两次,一次在header中,一次在main中。cI在两种情况下测试了此代码:1.使用头文件2.从主文件。当我创建函数enumTest()时在Main.c文件中,我将其从头文件中删除,当我将其创建到头文件中时,我直接将其调用到Main.c.Ok中,假设您只有在头文件中使用void enumTest(),则使用case SPORTS而不是SPORTING…但这可能是所有其他内容对我来说都是好的…是的,它是SPORT,甚至是getHobby方法头文件中的(…)可以编译。但是,当我编写语句printf时(“\n您的爱好是:%s”,getHobby(滑冰));然后我得到了一个编译错误。我无法理解为什么它在头文件的情况下不起作用,并且相同的方法移到main,这会给我正确的结果。我创建了一个示例函数
char*getValue(){return“Value”;}
我从一个方法执行语句(在头文件中)
char*ch=getValue();
该方法也不起作用。
include <HobbiesTest.h>

int main(void) {    
    enumTest();
    return 0;
}

void enumTest(){
    printf("\nYour hobby is: %s",getHobby(SKATING));
}
enum Hobbies {
    SKATING, SPORTING
};