我在头文件中创建了以下函数( 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));
}
为什么我在头文件的情况下出现编译错误?
答案 0 :(得分:0)
把
enum Hobbies {
SKATING, SPORTING
};
在头文件的开头。您在定义之前使用此枚举。