В стеке процессора push mov и pop и т. Д. Являются одиночными инструкциями.Одиночная инструкция push/pop для пользовательского стека вместо вызовов функций функции?
При компиляции исходного кода компилятор генерирует версию одной машинной инструкции, но во время выполнения, считая, что стек ... ну обычный контейнер стека, доступ к значениям, хранящимся в стеке во время выполнения, принимает вызовы функций, которые перевести на тонны машинного кода.
Возможно достижение такого же уровня эффективности для динамических объектов времени выполнения, а не для использования функций элемента setter и getter, которые намного длиннее одной машинной команды?
Моя идея заключается в использовании указателя метки, но я не знаю, как буквально нажимать его значение в ячейку памяти или из области памяти во время выполнения, не прибегая к вызовам функций.
Встраиваемая сборка, вероятно, вариант, один из которых я хотел бы избежать, если это возможно. Но я думаю, мне все равно придется поместить его в тело функции, поэтому это будет не одна инструкция.
Вы знаете, что компилятор может встроить функции C, правильно? – Borealid
С правильным выражением идей как функций действительно * хороший * компилятор * может * управлять им для вас из коробки. Вкладки вы получите большую часть пути, и большинство современных компиляторов это делают. Попробуйте изучить вывод сборки компилятора, который вы используете. – dmckee