我正在参加CLD-R之前的样本试卷。
我遇到了如下所示的重入问题:
答案是4。
在documentation中的for循环中没有具体提到预分配。
“预分配”意味着对于每次调用,我们都会创建一个数据空间 并克隆该电话。
以上建议答案是6,总共有六个调用,但答案是4.这是否意味着在FOR循环中只为一个VI分配了一个克隆?
答案 0 :(得分:4)
这是否意味着只为FOR循环中的VI分配了一个克隆?
是。相关术语是“呼叫站点”,在help中您可以找到:
在重入执行中,LabVIEW分配数据空间的多个实例或克隆,以便每个调用站点或调用者的程序框图上的子VI的使用可以并行执行,这样每个调用站点使用单独的克隆。
由于VI在代码中的一个位置,因此可以重用。当你编写一个具有有用状态的VI(比如一个反馈节点)时,这就变得非常相关了,然后你会在一个循环中天真地调用它,期望循环的每次迭代都有自己的副本,只有找到所有的迭代共享相同的状态。