我在函数my_reg_file
中定义变量post_access()
(此函数是用于实现副作用的vr_ad
挂钩):
//file1.e
extend TIMER_LOAD_0 vr_ad_reg {
post_access(direction : vr_ad_rw_t) is first {
var my_reg_file : TIMER vr_ad_reg_file =
get_parents()[0].as_a(TIMER vr_ad_reg_file);
....
};
};
然后我将此函数扩展到另一个e文件中:
//file2.e
extend TIMER_LOAD_0 vr_ad_reg {
post_access(direction : vr_ad_rw_t) is also {
start my_reg_file.some_tcm();
};
};
我收到编译错误:
*** Error: No such variable 'my_reg_file'
为什么post_access()
无法识别变量my_reg_file
?谢谢你的帮助。
注意:file1.e在file2.e
之前导入答案 0 :(得分:3)
my_reg_file是该特定方法层的局部变量,不与其他方法层共享。 我认为方法层之间进行通信的唯一方法是: 一个。使用结果保存变量,可以从任何方法层访问。 湾使用结构成员。
答案 1 :(得分:3)
另一个似乎更好的解决方案是为这个子类型添加一个单独的方法,例如get_my_reg_file()
,它将返回所需的值,然后在需要此值的位置调用此方法,而不是使用局部变量。