![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.03.2015
Сообщений: 5
|
![]()
Доброго времени суток. Задам пару очень глупых, но для меня просто непонятных вопросов.
Начну с азов. Кто может по пальцам объяснить значение слова "возвращает"? "// возвращаем значение суммы return accumulator;" Второй вопрос: есть ли книги по С++ в которых действие программ описывается с помощью блок-схем (или хотя бы, есть примеры). Просто начинаю теряться в изучении С++, когда дело доходит до циклов и массивов, не понимаю алгоритма. p.s. не кидайте тапками, я понимаю что вопросы реально глупые |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,609
|
![]()
Программу исполняет центральный процессор CPU по инструкциям, называемым машинными кодами. Возвращаемое помещается в регистр процессора eax при архитектуре x86. Это регистр для хранения арифметических данных. Функция имеет отдельное место расположения в памяти, которое определяется тем, как файл был скомпонован(link) компоновщиком(linker). Исполняемый файл это образ программы в памяти, в котором она загружается и исполняется. У процессора есть регистр eip, который указывает на текущую инструкцию. Программа это последовательность инструкций в секции .code, последовательность локация для хранения данных .data и т.д. 1 бит в компьютере это наличие электрического тока в цепи в данной локации.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Если в двух словах.
Почему говорят функция возвращает, а не функция вычисляет ? Потому что функция - это фрагмент программы, куда программа как бы ныряет, что-то там делает, а потом возвращается обратно, но не с пустыми руками, а с новым значением переменной, чьё имя стоит после return (return - возвращение по анг.) |
![]() |
![]() |
![]() |
#4 |
Регистрация: 07.03.2015
Сообщений: 5
|
![]()
Т.е. выглядит это так:
Программа запускается - наталкивается на функцию - получает из неё все значения (допустим это цикл) - продолжает выполнение уже с определенными данными, которые в дальнейшем использует полученными из функции? |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]() Цитата:
Программа выполняется или программа идет - значит процессор получает поочередно команды и выполняет их. Команды записаны обычно последовательно. Например выполняет команды из ячеек 100, 101,102, 103 .. А в 103 - команда вызова функции по имени ffun. А команды этой ffun записаны например с ячейки 900. И значит, после 103 выполняются 900, 901, 902 .... и т.д пока в 929-й например не встретится команда return. Значит после 929 будет выполняться 104, 105, и т. Кстати вызываться функция может многократно. Кроме того функция может вызываться из функции. Например, где-нибудь в ячейке 912 - вызов другой функции fufufufun. PS Кстати, в этом примере в ячейке 929 - команда не возврат в 104 , а просто возврат. Потому что функция ffun не знает откуда её вызвали - из 103-й ячейки или из другой. Этим функция и отличается от простых переходов goto. Куда возвращаться - это процессор узнает из стека. Но, для изучения Си это неважно. Это для ассемблера. Последний раз редактировалось type_Oleg; 21.03.2015 в 00:26. |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
leopold13777, начните писать программы, но не используйте функций. Потом вы сами убедитесь насколько они необходимы и удобны. Например, вы пишите программу и вдруг видите, что некоторые куски кода одинаковы. Вот их можно убрать в отдельную функцию, тогда программа станет короче, её будет легче читать
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос | Rooc | Свободное общение | 5 | 10.10.2010 12:14 |
Вопрос по mySQL + Вопрос по RichEdit | HTL | Общие вопросы Delphi | 4 | 01.01.2010 20:22 |
вопрос | simpz | Общие вопросы C/C++ | 2 | 09.01.2009 20:12 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |