У меня есть следующие функции на мой код:Почему я не могу использовать символ в качестве параметра функции?
int leepos(char *entrada, char elem)
который вызывается следующим образом:
leepos(entrada,'y');
Для меня это выглядит нормально, но я получаю следующее сообщение об ошибке: [Ошибка] противоречивую типы для «» leepos
Как ни странно, я могу сделать свою работу функции с этими небольшими изменениями:
Определение функции как:
int leepos(char *entrada, char* elem)
И называя его:
leepos(entrada,"y");
я могу заставить его работать правильно, когда я изменить логику, обработанную полукокса для лечения строк.
Похоже, что ошибка заключается в использовании символа в качестве параметра, хотя это выглядит довольно странно. Любая идея, почему это может произойти?
Я даю код, который показывает ошибку на использовании полукокса:
int main()
{
leepos("hi",'y');
leepos2("hi","y");
}
int leepos(char *entrada, char elem)
{
return 0;
}
int leepos2(char *entrada, char* elem)
{
return 0;
}
Программа работает хорошо, если я удалить leepos строки («привет», «у») ;, ошибка является по-прежнему такой же, как показанный, поэтому я думаю, что это ясно, что ошибка должна быть там.
Ошибка может быть не там, где вы думаете. Пожалуйста, предоставьте [mcve], который показывает проблему, чтобы дать окончательный ответ. – kaylum
В ответ на вопрос в вашем названии: потому что вы делаете что-то неправильно. Остальные из нас могут это сделать. Если бы вы показали достаточный код, у вас уже был бы ответ. , пожимает плечами: – enhzflep
может быть, есть 'int leepos (char * entrada, char * elem);' где-то в вашем файле заголовка. – ymonad