如果我有一些错误,请提前道歉。如果不太具有破坏性,我可能会稍后进行编辑以更正。
据我了解,当在相邻内存中声明多个变量时,在非常低的级别上,会创建封装多个字节的寄存器,通常为 1、2、4 或 8。这允许这些位范围进行二进制旋转,如以及被处理器视为数字,因此通过简单的数学(例如加,减,乘和除)发生变异。
可能存在不重叠这些范围的抽象原因,但由于许多语言认为指令以编码器将意识到的明确定义的顺序顺序发生,是否有任何性能原因不重叠分配内存的相邻字节中的一个或多个?
例如,在分配的内存块中,每个位都从 0 开始。字节 0 到 3 可以用作 int,以及字节 1 到 4。第一个可以设置为在第二个范围乘以之前的值3.
如果有性能原因不这样做,那么它们是否通过否则必须将值复制进出全新的变量并执行更复杂的过程来实现某些算法来克服,否则这些算法可以在非常低的水平上完成?