Не надо делать мне как лучше, оставьте мне как хорошо
-
- Дык "trampoline" = таблица вызовов по фиксированному адресу. - VLLV(24.03.2026 09:19)
- Таблица указателей на функции - это, емнип, "вектора" на умном.
Трамплины - это таблица переходов на функции. - LightElf(24.03.2026 11:45)
- Перефразируя: таблица указателей - это массив адресов функций
(значение можно загрузить в регистр, но нельзя исполнить на месте).
Таблица переходов - это готовые команды перехода с готовыми
адресами. Их можно исполнять, просто переходя, при выполнении
программы, на нужную "ячейку" таблицы. Верно я понял ваше
высказывание? - Nikolay_Po(25.03.2026 12:55)
- Именно так. Оно кагбэ не сильно принципиально, но трамплины можно удобно импортировать средствами линкера, а с векторами придется корячиться врукопашную. Меня бы напрягло писать, например, LightElf(66 знак., 25.03.2026 14:17)
- В зависимости от архитектуры вектора могут быть как таблицей
адресов, так и командами перехода. Но мы же в ЯВУ живём, зачем нам
к архитектуре привязываться. - VladislavS.(25.03.2026 13:41)
- Это не вопрос архитектуры процессора. Вектора - это указатели на функции, трамплины - это код. В минимальном виде - "jmp foo". Отличия небольшие, но есть. Особенно если реализована защита памяти. С практической точки зрения: трамплины можно удобно завернуть в import library и вызывать без этих вот "struct->foo(x)", а просто писать "foo(x)". Дальше - забота линкера. - LightElf(25.03.2026 14:07)
- Перефразируя: таблица указателей - это массив адресов функций
(значение можно загрузить в регистр, но нельзя исполнить на месте).
Таблица переходов - это готовые команды перехода с готовыми
адресами. Их можно исполнять, просто переходя, при выполнении
программы, на нужную "ячейку" таблицы. Верно я понял ваше
высказывание? - Nikolay_Po(25.03.2026 12:55)
- Таблица указателей на функции - это, емнип, "вектора" на умном.
Трамплины - это таблица переходов на функции. - LightElf(24.03.2026 11:45)
- Дык "trampoline" = таблица вызовов по фиксированному адресу. - VLLV(24.03.2026 09:19)