К примеру, есть два файла (file1 и file2). В файле 1 находится main(). В файле 2 реализована функция Sum()
В функции main() вызывается функция Sum()
FILE1.c
#include “file2.h”
int main(void)
{
Sum();
return 0;
}
FILE2.c
int Sum(void)
{
Int x = 0;
x = 7+6;
return x;
}
Вопрос: Как осуществляется выполнение функции Sum()? Место прототипа функции (Sum() ) вставляется реализация этой функции?
Или осуществляется переход на эту функцию, где она реализована(то есть в файле 2)? Если да, то как это работает, когда эта программа загружена во flash память микроконтроллера? Я понимаю это так, что функция Sum() хранится в определенном месте в памяти. Выполняется функция main() и когда вызывается функция Sum(), то указатель перемещается на адрес в памяти где находится функция Sum(), выполняет эту функцию и возвращается обратно в main(). Так ли это работает?
Или подскажите пожалуйста где и что нужно почитать что бы понять это. (По просторам интернета я уже бегал).


