У меня есть функция C, которая содержит весь код, который будет реализовывать байт-коды интерпретатора байт-кода.
Мне интересно, есть ли способ выровнять сегменты скомпилированного кода в памяти по границам фиксированного размера, чтобы я мог напрямую рассчитать адрес для перехода из значения байт-кода? Примерно так же, как массив работает, но вместо чтения с вычисленного адреса, я прыгаю к нему.
Я знаю, что мне придется поместить код для выполнения следующего перехода в конце каждого сегмента "кода байт-кода", и что мне придется сделать размер границы по крайней мере таким же, как размер самого большого сегмента .
Если это вообще возможно, как я скажу компилятору / ассемблеру (gcc / g ++ / as) выполнить выравнивание указанным способом?