You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:07:43