ожидание return или продолжение выполнения loop() ?

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

Приветствую.
Вот возник вопрос, а проверить пока не на чем:

void loop() {
  int i = foo();
  bar();
}

int foo() {
  ....
  delay(1000);
  return 1;
}

в данном коде метод bar() выполнится, после того, как i получит значение метода foo() или нет, не будет ждать?

Спасибо

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

проверил на эмуляторе... ждет выполнения foo()

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Очень оригинально :) Откуда вопрос на очевидный ответ. Распараллеливание процессов - отдельная стезя программирования. Которая будет очень сильно заметна в коде. Последовательность действия процессора, как правило, очевидна , это строгая последовательность действий. Обращение к процедурам и функциям, есть отсылка к некоеу куску кода, который пока не выполнится не отдаст управление назад. Представьте, вы читаете книгу, в тексте встречаете сылку на другую статью, вы сможете понять, что в другой статье не прочитав ее- НЕТ, вы сможете одновременно читать две статьи- НЕТ. Вы можете отвлечься от основной статьи, перейти по ссылке, проситать ссылку, по окончании ее чтения вернуться к предьидущему тексту с того момента когда вы прекратили чтение -ДА. 

Datak
Offline
Зарегистрирован: 09.10.2014

На самом деле, для кого-то может быть и не очевидный. Если человек до этого писал что-то, например, на VHDL - так у них там, понятно, совсем другие законы. Так что, можно и запутаться с непривычки. :)

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

ну мало ли нюансов бывает, хотел уточнить о возможностях.

Спасибо