我正在用 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";
}
}