我想这样做,以便我可以在不同的枚举中使用相同的枚举成员名称,如下所示:
enum OPTION_1
{
ACTIVATED = 1,
DEACTIVATED = 0
};
enum OPTION_2
{
ACTIVATED = 1,
OFF = 0
};
当我尝试编译时,我收到错误:重复的枚举器名称“ACTIVATED”。
我发现了一个类似的问题,但对于C ++语言 c++ how to have same enum members name in different enum names without getting err:redefinition; previous definition was 'enumerator'
我尝试过在那里展示的解决方案,但我无法在CAPL中实现它们。我的问题是我是否可以使用不同名称但具有相同成员名称的枚举;如果有可能,怎样才能在CAPL中实现?
答案 0 :(得分:0)
有一种解决方法,这确实很丑陋,不建议这样做。
在CANoe中,您可以为实际上是枚举的系统变量定义自己的值表,并且相同成员名称没有限制。
然后您可以在CAPL代码中重复使用此枚举:
variables{
enum VtSv_foo_myEnum1 var1;
enum VtSv_myEnum2 var2;
}
do_foo(){
var1 = (enum VtSv_foo_myEnum1) sysvar::foo::myEnum1::One;
var2 = (enum VtSv_myEnum2) sysvar::myEnum2::One;
}
在开始使用此功能之前,只问自己自己有什么好处?因为代码看起来很乱。
您可以在CANoe帮助中找到更多信息:
CAPL简介»基础»枚举类型