Я пишу простую функцию на C, цель которой состоит в том, чтобы взять 6-битное число, обработать первые 3 бита и на основе этого вернуть «r», «w» или «o». *
Однако, когда я компилирую, я получаю это предупреждение: «return делает целое число из указателя без приведения». Затем, когда я запускаю программу, я обнаруживаю, что функция возвращает странный символ, который определенно не входит в число трех, которые мне нужны.
Что здесь происходит? Заранее спасибо.
Вот моя функция:
char
readorwrite(int opcode)
{
if (opcode >> 3 == 4) {
return "r";
} else if (opcode >> 3 == 5) {
return "w";
} else {
return "o";
}
}