SystemVerilog多维枚举数组:独立枚举类型下2*N数组定义改写问询
针对枚举数组改写的解答
首先,我们得先把{S0,S1,S2,S3}定义成独立的枚举类型,以C/C++为例(这是枚举类型最常用的场景之一),先完成枚举类型的定义:
// 定义枚举类型并起别名,方便后续复用 typedef enum { S0, // 默认值为0,也可手动指定如S0=1这类自定义值 S1, S2, S3 } State;
接下来改写原数组定义语句(也就是你提到的语句(*)):
- 如果原数组是类似
int target_array[2][N];这种直接用int存储枚举值的写法,现在只需要把元素类型换成我们刚定义好的枚举类型即可,改写后是:
State target_array[2][N];
关于你问的“是否可按如下方式改写?”——你没有附上你想尝试的具体改写方式哦😅,不过只要是先正确定义枚举类型,再将数组的元素类型指定为这个枚举类型的写法,都是合规的。比如在C++里,甚至可以简化枚举定义为enum State {S0,S1,S2,S3};,数组定义State target_array[2][N];同样完全可行。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

