gpt4 book ai didi

spin - Promela 中的按引用传递

转载 作者:行者123 更新时间:2023-12-01 03:45:47 25 4
gpt4 key购买 nike

在我的设计中,我有 电话 全局变量和一个方法,根据状态将一些提到的参数作为参数。

我可以通过引用将全局变量作为参数传递吗?

This paper在结论部分明确说

"special form of call-by-reference parameter passing that Spin does not support"



还有其他方法可以做到这一点吗? (即传递变量名)

结构如下
bit varA = 1;
bit varB = 1;
bit varC = 1;

proctype AProcess(bit AVar){
/* enter_crit_section */

/* change global varN */

/* exit_crit_section */
}

init {
run AProcess(varA)
run AProcess(varB)
run AProcess(varC)
}

附言
我无法使用,例如:
mtype = { A, B, C }
...
proctype AProcess(bit AVar; mtype VAR)
...
run AProcess(varA, A)

然后检查传递的是哪个变量,因为 AProcess 不知道 关于其他变量的存在

最佳答案

将您的变量放入一个数组中,然后传递数组索引。就像是:

// A type to identify VARs; we pass these values to simulate 'by reference'
#define var_id byte

// A VAR
typedef var_struct
{
bit val; // The var's value
};

#define VAR_COUNT 3

// allocate the VARs
var_struct var_array [VAR_COUNT];

// Access the value for VAR (based on var_t
#define VAR_VAL(id) var_array[(id)].val

关于spin - Promela 中的按引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com