私は、6 ビットの数値を取得し、最初の 3 ビットを計算し、それに基づいて "r"、"w"、または "o" を返すことを目的とする単純な関数を C で作成しています。
ただし、コンパイルすると、「リターンはキャストなしでポインターから整数になります」という警告が表示されます。次に、プログラムを実行すると、関数が奇妙な文字を返していることがわかりました。
ここで何が起こっているのですか?前もって感謝します。
これが私の機能です:
char
readorwrite(int opcode)
{
if (opcode >> 3 == 4) {
return "r";
} else if (opcode >> 3 == 5) {
return "w";
} else {
return "o";
}
}