В определении функции и в самой функции выделяются разная память?
То есть когда мы опрелеляем функцию то дополнительно занисаем память?
Когда мы определяем функцию, мы рассказываем о функции компилятору. В итоговый код, при отключенном добавлении отладочной информации, определение функции не попадает.
>>То есть когда мы опрелеляем функцию то дополнительно занисаем память?
Я так понял имеется в виду выделяется ли память под аргументы функции? Да выделяется в зависимости от языка программирования на стеке (быстрее) или куче (гибче). Освобождается после выхода из области видимости.