我想用 C 语言编写一个由参数控制的条件定义。
类似这样的事情:
#define RTL_REG(reg_name,inst) \
inst == 0 ? DUT_0_##reg_name : \
inst == 1 ? DUT_1_##reg_name : \
inst == 2 ? DUT_2_##reg_name : \
inst == 3 ? DUT_3_##reg_name : \
DUT_0_##reg_name
但是代码没有按照我想要的方式工作。本质上,它是用 inst 的值替换定义。
我要寻找的是:
RTL_REG(CLK_EN,0) -> *DUT_0_CLK_EN*
RTL_REG(CLK_EN,1) -> *DUT_1_CLK_EN*
我得到了什么:
RTL_REG(CLK_EN,0) -> 0
你们一些 C 语言专家可以帮我吗?
注意: 尝试在定义的开头和结尾处添加 () ,但同样,“(”出现在定义替换中!
最佳答案
关于C 中的条件 #define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51224158/