最近、同じunsigned shortを使用して、結果とIDの2つの値を格納するコードを作成しました。次に例を示します。
unsigned short data = new_id();
// result is either 0 or 1 so store it in the rightmost bit and move the id left
data = (data << 1) + get_result();
// ... later ...
// now we can print results like
printf("%u: %u\n", data & 1, data >> 1);
構造体を使用して両方の値を保持する方がよいでしょうか、それともこのタイプのものは一般的/許容可能ですか?プログラムはすでに非常に多くのメモリを保存しているので、使用するメモリを減らす方法を見つけ始めたいと思いました。