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