1 #define NUM_PHIL 4 2 3 byte chopstick[4]; 4 chopstick[0] = 1; 5 chopstick[1] = 1; 6 chopstick[2] = 1; 7 chopstick[3] = 1; 8 9 proctype phil(int id) { 10 do 11 ::printf("Philosopher %d is thinking\n",id); 12 /* ... */ 13 printf("Philosopher %d is eating with forks %d and %d\n",id,id,(id+1)%4); 14 /* ... */ 15 od 16 } 16a 17 init { 18 int i = 0; 19 do 20 :: i >= NUM_PHIL -> break 21 :: else -> run phil(i); 22 i++ 23 od 24 }
上面的代码发送错误“语法错误锯''筷子'附近的标识符'” 如何定义和初始化数组作为原型P()之外的全局变量 谢谢你的帮助
答案 0 :(得分:0)
您可以在init
正文中初始化筷子阵列。
#define NUM_PHIL 4
byte chopstick[4]; /* NUM_PHIL */
proctype phil (int n) { /* ... */ }
init {
chopstick[0] = 1;
/* ... */
run phil (0);
/* ... */
}