стек — где функция-член выделяет память в c ++ и как часто?

где функция-член класса получает свою память?

Является ли стек фрейм ответом на это?

И распределяется ли он всякий раз, когда мы вызываем функцию-член?

Это как всякий раз, когда мы вызываем функцию-член, используя объект, он выделяется в кадре стека, а когда функция достигает его, возвращает оператор, что выделенный кадр стека освобождается?

-2

Решение

где функция-член класса получает свою память?

Выделение памяти для данных функции определяется реализацией.

Является ли стековый фрейм ответом на это?

Для реализации C ++ не требуется использовать структуру стека.
Структура стека для локальных переменных удобна, но не обязательна.

И распределяется ли он всякий раз, когда мы вызываем функцию-член?

Функция локальных переменных может создаются, когда исполнение входит в функцию. Не требуется, чтобы реализация создавала переменные. Переменные могут существовать в глобальной памяти и инициализироваться, когда выполнение входит в функцию.

Это как всякий раз, когда мы вызываем функцию-член, используя объект, он выделяется в кадре стека, а когда функция достигает его, возвращает оператор, что выделенный кадр стека освобождается?

Популярной реализацией является выделение места в стеке для локальных переменных. Распределение пространства будет включать в себя увеличение или уменьшение указателя стека.
Когда выполнение выходит из области видимости, стек корректируется соответствующим образом.

Реализация разрешено использовать регистры, поэтому существует вероятность того, что память не будет выделена и стек не будет изменен. Реализация может помещать регистры в стек перед выполнением функции и извлекать их впоследствии.

Ответы на ваши вопросы определены реализацией. Небольшие встроенные системы могут использовать больше регистров или глобальной памяти, чем стек. Существует много возможных структур данных, которые можно использовать и при этом соответствовать стандарту языка C ++.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]