面对头文件中调用枚举的错误

时间:2014-10-29 20:09:32

标签: c

我在头文件中创建了以下函数( getHobby(Hobbies)),当我在头文件中调用此函数时,我收到一个错误:

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));
}

而且,当我在某个方法中从主文件调用相同的函数时,相同的代码工作正常。

MAIN.C

include <HobbiesTest.h>

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

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

为什么我在头文件的情况下出现编译错误?

1 个答案:

答案 0 :(得分:0)

enum Hobbies {
    SKATING, SPORTING
};

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