Что происходит, когда функция возвращает значение? - C (СИ)
Формулировка задачи:
Здравствуйте! Ответьте, пожалуйста, на такой вопрос: есть некая функция, возвращающая double. Что происходит, когда она возвращает значение? В регистре EAX она не может сохранять это значение, так как он 32-битный, а стек "раскручивается" до адреса возврата, поэтому значение там не сохранится. Заранее спасибо!
Решение задачи: «Что происходит, когда функция возвращает значение?»
textual
Листинг программы
double d;
double func (void) { return d; }
Объяснение кода листинга программы
- В начале кода объявляется переменная типа double с именем
d{1}. - Затем определяется функция с именем
func, которая не принимает аргументов и возвращает значение типа double {2}. - Внутри функции
funcнет никаких действий, она просто возвращает значение переменнойd{3}. - Код, который вызывает функцию
func, может присвоить ее возвращаемое значение переменной типа double с именемd{4}. - Значение переменной
dтеперь можно использовать в коде {5}.