Atomic
Знаток
(420)
14 лет назад
Пустая функция, которая ничего "не возвращает".
void emptyFunc()
{
return; // Выход из функции (под-программы) , функция ничего не возвращает.
}
Вызвать её просто: emptyFunc();
Она лишь выполняет какую-либо задачу, которая не отдает никаких результатов вызвавшей её программе.
Никаких данных в регистры она не кладет, а значит и вызывающей программе оттуда брать нечего, ибо тип void.
--
Функция, которая просто возвращает 1:
int returnFunc()
{
return 1; // Здесь в регистр процессора помещается этот самый возврат
}
Компилятор сделал это примерно так:
00C613DE mov eax,1
Затем, содержимое регистра eax может быть использовано для каких либо целей вызывающей программой.
Например вызов и присвоение полученного результата переменной "newi":
newi = returnFunc(); // эта функция вернет 1 и поместит 1 в переменную
Компилятор делает "перемещение" содержимого из регистра eax(в него функция поместила 1) в участок памяти переменной newi:
002A1428 mov dword ptr [newi],eax
Вот такой процесс, хоть и сложно объяснил xD
Антончев Алексей
Мастер
(2165)
14 лет назад
пример 5+5
ответ равен 10, но языку допустим паскаль не понятно куда он ответ запишит куда возвратит,
пример возвращения
a:=5+5;
ответ 10 он возвратил в переменную а
тоесть получилось так
a=10;
короче в переменную записывается ответ, тоесть возвращает