Где хранятся функции в программе на C++?Назначение функций
Например
int abc()
{
//where am I stored?
}
Я знаю, что мы можем взять адрес функции, это означает, что функции хранятся где-то в памяти. Но я уже читал во многих местах, что распределение памяти для функций не происходит.
Я смущен. Мой вопрос может показаться смутным для многих из вас, но я не могу помочь.
Что заставляет вас думать, что компилятор фактически хранит все функции в памяти? Все, что вы показали, это то, что в нем хранятся все функции *, которые вы выбрали именно так. –
Чтобы развернуть комментарий Joe, функции могут быть * inlined *, что означает, что функция вызывается вместо того, чтобы вставлять код для вызова этой функции, компилятор вставляет фактический кусок функции. Это означает, что код одной функции может присутствовать несколько раз в течение всей программы. Кроме того, функции, которые никогда не вызываются, могут быть полностью удалены! – AshleysBrain