【问题标题】:Promela syntax error: Error: incomplete structure ref 'table' saw 'operator: ='Promela 语法错误:错误:不完整的结构 ref 'table' 看到了 'operator: ='
【发布时间】:2015-03-31 18:43:39
【问题描述】:

我有以下类型定义。 pub 类型保存两个 int,pub_table 保存一个发布者数组和一个 int。

typedef pub{
    int nodeid;
    int tid
};

typedef pub_table{
    pub table[TABLE_SIZE];
    int last
};

然后在线pt.table[pt.last] = p; 我收到一个错误提示

" 错误:不完整的结构 ref 'table' 看到了 'operator: ='"

if
:: node_type == publisher -> 
        pub p;
        p.nodeid = node_id;
        p.tid = topic_id;
        pt.last = pt.last + 1; 
        pt.table[pt.last] = p;
fi

很遗憾,我看不出那行有什么问题?

【问题讨论】:

    标签: spin promela


    【解决方案1】:

    错误是因为您无法一次性分配完整的 typedef 变量。我试图通过定义局部变量pub p; 来做到这一点,然后在初始化p 中的所有字段之后,我尝试在这里一次性分配pt.table[pt.last] = p。我设法这样解决它:

    pt.table[pt.last].nodeid = node_id;
    pt.table[pt.last].tid = topic_id;
    

    REF:

    当前的 Spin 实现对 typedef 对象的使用。无法赋值 一个完整的 typedef 对象直接指向另一个相同的对象 输入一个作业。

    【讨论】:

      猜你喜欢
      • 2016-02-17
      • 2018-08-25
      • 1970-01-01
      • 2015-02-06
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多