Я создал функцию внизу (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));
}
Почему я получаю ошибку компиляции в случае заголовка файла?
Также функция void enumTest() определена дважды в заголовке и один раз в main.c – Sekory
Я протестировал этот код в двух случаях: 1. С файлом заголовка 2. Из основного файла. Когда я создал функцию enumTest() в файле Main.c, я удалил ее из файла заголовка, и когда я создал ее в заголовочном файле, я просто вызываю ее непосредственно в Main.c. –
Хорошо, предполагая, что у вас есть void enumTest() только в заголовочном файле есть случай SPORTS вместо SPORTING ... Но, наверное, все, что мне кажется, все в порядке ... – Sekory