Заранее извините, если у меня что-то не так.Я могу отредактировать, чтобы исправить позже, если это не слишком разрушительно.
Когда несколько переменных объявляются в смежной памяти, насколько я понимаю, на очень низком уровне создаются регистры, которые инкапсулируют количество байтов, обычно 1, 2, 4 или 8. Это позволяет этим двоичным диапазонам быть повернутыми в двоичном формате, а также восприниматься процессором как числа и таким образом изменяться с помощью простой математики, такой как сложение, вычитание, умножение и деление.
Тамможет быть причинами абстракции для того, чтобы не перекрывать диапазоны значений, но так как многие языки считают, что инструкции выполняются в четко определенном последовательном порядке, о котором будет знать кодер, существуют ли какие-либо причины производительности, чтобы не перекрывать один или несколько соседних байтов выделенной памяти?
Например, в блоке выделенной памяти, где каждый бит начинается с 0. Байты от 0 до 3 могут использоваться как целые числа, а также байты с 1 по 4. Первый может быть установлен в значение передвторой диапазон был умножен на 3.
Если есть производительностьПричины, по которым они этого не делают, преодолеваются тем, что им приходится копировать значения в и из совершенно новых переменных и выполнять более сложные процессы для достижения определенных алгоритмов, которые в противном случае могли бы быть выполнены на очень низком уровне?