LinuxForum.Fans
Тема

Сколько памяти занимает функция в си?

Автор: Silencer 5 сообщений 1633 просмотров
#374184

Сколько памяти занимает функция в си?
Не прошу помощи, "сабж" удалил. Просто интересуюсь. Тема информативна при наличии вменяемого ответа.

#374209

Функции же разные бывают, main например :-)

#374212
"yars" написал:
Функции же разные бывают, main например :-)

Какая разница какая функция? Объем ее зависит от количества операторов и передаваемых ей параметров.

#374216
"Silencer" написал:
Какая разница какая функция? Объем ее зависит от количества операторов и передаваемых ей параметров.

а ещё от того, что захочет с ней сделать левая задняя нога компилятора...

вопрос сам по себе не корректен... как минимум не хватает «где занимает».
если в elf-бинарнике, то можно определить, например, раскурив вывод objdump'а...

#374689
Silencer написал:
[quote="yars"]Функции же разные бывают, main например :-)

Какая разница какая функция? Объем ее зависит от количества операторов и передаваемых ей параметров.[/quote]

Ничего подобного!

- объём компилированного кода (секция .text) зависит от самого кода, во что скомпилируется ... но может в разы отличаться от уровня оптимизации, с которым сделана компиляция;
- параметры (хоть на мегабайт) никак не влияют на объём занимаемой памяти ... функцией (сам вопрос какой-то бестолковый o_O ) - параметры + все локально определяемые переменные размещаются в стеке, и там же уничтожаются;
- при рекурсивных вызовах, например, функция может потребовать в тысячи раз больше памяти, чем само размещение её кода...
- статические переменные размещаются совершенно особо (секция .data), причём инициализированные и неинициализированные переменнные хранятся и размещаются по-разному;

Так что вопрос - довольно бессмысленный! @=

Войдите или зарегистрируйтесь, чтобы ответить.