在执行c中的下一行代码之前完成一个被调用的函数

时间:2015-04-27 17:07:20

标签: c arduino

在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);
}

2 个答案:

答案 0 :(得分:1)

是。 thread中的代码执行顺序发生。被调用的函数应该return,并且执行将从被调用的函数中的下一个语句继续执行。

答案 1 :(得分:0)

这完全取决于delay的实施。

如果它是同步的,正如人们所期望的那样,那么对delay的调用将有效地“暂停”你的函数大约delayDuration个时间单位(通常是几毫秒)。

delayDuration 的初始化可能会在调用advertise之前完成,但advertise将在调用delay之前完成,并且它将完成在loop退出之前。