間違っている部分がある場合は、事前に申し訳ありません。あまり混乱しない場合は、後で修正するために編集することがあります。
私が理解しているように、隣接するメモリで複数の変数が宣言されると、非常に低いレベルで、通常は 1、2、4、または 8 のバイト数をカプセル化するレジスタが作成されます。プロセッサによって数値として考えられるため、加算、減算、乗算、除算などの単純な数学で変更されます。
これらの範囲がオーバーラップしないという抽象化の理由があるかもしれませんが、多くの言語では、コーダーが認識できる明確に定義された順序で命令が発生すると見なされているため、割り当てられたメモリの隣接するバイトで 1 つ以上がオーバーラップしないパフォーマンス上の理由はありますか? ?
たとえば、すべてのビットが 0 から始まる割り当てられたメモリのブロックでは、バイト 0 から 3 を int として使用でき、バイト 1 から 4 も使用できます。 3.
そうでないパフォーマンス上の理由がある場合、まったく新しい変数に値をコピーしたり、完全に新しい変数から値をコピーしたり、より複雑なプロセスを実行して、そうでなければ非常に低いレベルで実行できる特定のアルゴリズムを達成したりする必要があるため、それらを克服できますか?