在c中调用函数(编写arduino)时,该函数是否会在执行原始函数中的下一行代码之前完成?
请参阅以下示例中的评论:
void loop()
{
duration = random(750, 1500);
advertise("111", duration); // <-- will this function fully complete
int delayDuration = random (300,500); // <--before executing this line of code?
delay(delayDuration);
}
答案 0 :(得分:1)
是。 thread
中的代码执行顺序发生。被调用的函数应该return
,并且执行将从被调用的函数中的下一个语句继续执行。
答案 1 :(得分:0)
这完全取决于delay
的实施。
如果它是同步的,正如人们所期望的那样,那么对delay
的调用将有效地“暂停”你的函数大约delayDuration
个时间单位(通常是几毫秒)。
delayDuration
的初始化可能会在调用advertise
之前完成,但advertise
将在调用delay
之前完成,并且它将完成在loop
退出之前。