0

我想这样做,以便我可以在不同的枚举中使用相同的枚举成员名称,如下所示:

enum OPTION_1
{
    ACTIVATED   = 1,
    DEACTIVATED = 0
};

enum OPTION_2
{
    ACTIVATED   = 1,
    OFF         = 0
};

当我尝试编译它时,我收到错误:重复的枚举器名称“激活”。

我发现了一个类似的问题,但是对于 C++ 语言 c++ 如何在不同的枚举名称中具有相同的枚举成员名称而不会出现 err:redefinition; 以前的定义是“枚举器”

我尝试了那里显示的解决方案,但我无法在 CAPL 中实现它们。我的问题是我是否可以使用不同名称但成员名称相同的枚举;如果可能,如何在 CAPL 中实现?

4

1 回答 1

0

有一个解决方法,这真的很难看,不建议这样做。

在 CANoe 中,您可以为实际上是枚举的系统变量定义自己的值表,并且对相同的成员名称没有限制。

CANoe-sysvar 的值表编辑器

然后你可以在 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 介绍 » 基础 » 枚举类型

于 2018-06-27T13:55:35.673 回答